# 翻訳実装状況 (Translation Implementation Status)

**実装日**: 2026-01-20
**方式**: Map-based inline translations
**対応言語**: 日本語 (ja) / 英語 (en)

---

## 📊 実装メトリクス

- **翻訳ファイルサイズ**: 109行 (`lib/utils/translations.dart`)
- **翻訳キー数**: 61個
- **翻訳済み画面数**: 3画面 (MainScreen, HomeScreen, SoulScreen)
- **翻訳率**: 約15% (コアUI要素のみ)

---

## ✅ 翻訳済みの範囲

### 1. ナビゲーション (MainScreen)
- [x] BottomNavigationBar タブラベル (個人モード5個 + ビジネスモード4個)
  - ホーム / Home
  - スキャン / Scan
  - ソムリエ / Sommelier
  - マップ / Map
  - マイページ / My Page
  - 販促 / Promo
  - 分析 / Analytics
  - 店舗 / Shop

### 2. ホーム画面 (HomeScreen)
- [x] AppBar タイトル
  - お品書き作成 / Menu Creation
- [x] 検索バー
  - プレースホルダー: 銘柄・酒蔵・都道府県... / Brand, Brewery, Prefecture...
- [x] ツールチップ
  - 並び替え / Sort
  - 都道府県で絞り込み / Filter by Prefecture
  - お気に入りのみ / Favorites Only
  - ヘルプ・ガイド / Help & Guide
- [x] 並び替えメニュー
  - 並び替え / Sort
  - 新しい順（登録日） / Newest (Registration)
  - 古い順（登録日） / Oldest (Registration)
  - 名前順（あいうえお） / By Name (A-Z)
  - カスタム（ドラッグ配置） / Custom (Drag & Drop)
- [x] 空状態メッセージ
  - お品書きに追加されたお酒はありません / No sake added to menu
  - リスト画面に戻って... / Go back to list and select sake...
- [x] SpeedDial (ビジネスモード)
  - お品書きを作成 / Create Menu
  - セットを作成 / Create Set
  - ギャラリーから選択 / Select from Gallery
  - カメラで撮影 / Take Photo
- [x] ビジネスモードガイド
  - ビジネスモードへようこそ / Welcome to Business Mode
  - セット商品の作成 / Create Set Products
  - インスタ販促 / Instagram Promotion
  - 売上分析 / Sales Analytics

### 3. マイページ画面 (SoulScreen)
- [x] AppBar タイトル
  - マイページ / My Page
- [x] プロフィールセクション
  - プロフィール (ID) / Profile (ID)
  - ニックネーム / Nickname
  - 性別 / Gender
  - 生年月日 / Date of Birth
  - MBTI診断 / MBTI Type
  - 未設定 / Not Set
- [x] 性別選択ダイアログ
  - 男性 / Male
  - 女性 / Female
  - その他 / Other
  - 回答しない / Prefer not to say
- [x] ダイアログ
  - ニックネーム変更 / Change Nickname
  - 呼び名を入力 / Enter your name
  - MBTIタイプ選択 / Select MBTI Type
- [x] 共通アクション
  - 保存 / Save
  - キャンセル / Cancel
  - 削除 / Delete
- [x] ガイドボタン
  - ガイド・ヘルプを見る / View Guide & Help
- [x] 設定セクション
  - その他 / Others
- [x] ゲーミフィケーション (Coach Marks)
  - レベル＆称号 / Level & Title
  - バッジコレクション / Badge Collection

---

## ❌ 未翻訳の範囲

### コアUI（優先度：高）
- [ ] ScanScreen (スキャン画面)
- [ ] CameraScreen (カメラ画面)
- [ ] SakeDetailScreen (詳細画面)
- [ ] SettingsScreen (設定画面の一部)

### ダイアログ・SnackBar（優先度：中）
- [ ] エラーメッセージ
- [ ] 成功通知
- [ ] 確認ダイアログ

### プレースホルダー画面（優先度：低）
- [ ] SommelierScreen (AIソムリエ)
- [ ] BreweryMapScreen (酒蔵マップ)
- [ ] InstagramPromoScreen (インスタ販促)
- [ ] AnalyticsScreen (分析)

### 専門用語（優先度：低）
- [ ] 日本酒タイプ (純米大吟醸、山廃など)
- [ ] 味わい用語 (辛口、甘口、フルーティーなど)
- [ ] 都道府県名

---

## 🎯 翻訳の方針

### ✅ 翻訳するもの
- **UIラベル**: ボタン、タブ、メニュー項目
- **メッセージ**: エラー、成功、確認ダイアログ
- **説明文**: ヘルプ、ガイド、ツールチップ
- **共通アクション**: 保存、削除、キャンセル

### ❌ 翻訳しないもの
- **銘柄名**: 「獺祭」「八海山」→ そのまま表示
- **酒蔵名**: 「旭酒造」→ そのまま表示
- **ユーザー入力データ**: レビュー、メモなど

### 🌐 専門用語の扱い
- **ローマ字 + 英語説明**
  - 例: 純米大吟醸 → "Junmai Daiginjo (Premium sake)"
  - 例: 山廃 → "Yamahai (Traditional brewing method)"

---

## 📁 ファイル構成

```
lib/
├── utils/
│   └── translations.dart         # 翻訳定義 (109行、61キー)
├── screens/
│   ├── main_screen.dart          # ✅ 翻訳済み
│   ├── home_screen.dart          # ✅ 翻訳済み
│   └── soul_screen.dart          # ✅ 翻訳済み
└── widgets/
    └── settings/
        └── language_selector.dart # 言語選択UI
```

---

## 🔄 将来の移行計画 (ARBファイルへ)

### Why ARB?
- Flutter公式の標準フォーマット
- 翻訳者にやさしい (JSON形式)
- パラメータ埋め込み対応
- 複数形・性別対応
- IDEサポート

### 移行手順 (予定作業時間: 2-3時間)
1. `l10n.yaml` 作成
2. 現在のMapを `app_ja.arb` / `app_en.arb` に変換
3. `flutter pub get` でコード生成
4. 各画面で `AppLocalizations.of(context)` に置き換え

### 移行のタイミング
- 翻訳キーが100個を超えたら
- 3言語目 (フランス語/ドイツ語) 追加時
- パラメータ埋め込みが必要になった時

---

## 🧪 テスト方法

### 手動テスト
1. 設定画面で「言語 / Language」を開く
2. 「🇺🇸 English」を選択
3. 以下を確認:
   - BottomNavigationBarのタブが英語に変わる
   - ホーム画面のAppBarが "Menu Creation" になる
   - ソート画面が英語表示になる
   - マイページが英語表示になる

### 翻訳漏れチェック
```dart
// 開発中に使用
final t = Translations('en');
print(t['存在しないキー']); // → '存在しないキー' (フォールバック)
```

---

## 📈 今後の拡張予定

### Phase 2A: コアUI翻訳拡張 (4-6時間)
- [ ] スキャン画面
- [ ] カメラ画面
- [ ] 詳細画面
- [ ] エラーメッセージ

### Phase 2B: 専門用語翻訳 (2-3時間)
- [ ] 日本酒タイプ (20種類)
- [ ] 味わい用語 (15種類)
- [ ] 都道府県名 (47都道府県)

### Phase 3: ARBファイル移行 (2-3時間)
- [ ] l10n.yaml作成
- [ ] ARBファイル生成
- [ ] コード置き換え

### Phase 4: 多言語対応 (言語ごとに4-6時間)
- [ ] フランス語 (fr)
- [ ] ドイツ語 (de)
- [ ] 中国語 (zh)

---

## 🐛 既知の問題

なし (現時点で正常動作)

---

## 📚 参考資料

- [Flutter公式: Internationalizing Flutter apps](https://docs.flutter.dev/ui/accessibility-and-localization/internationalization)
- [ARB Format Specification](https://github.com/google/app-resource-bundle/wiki/ApplicationResourceBundleSpecification)
- [intl Package Documentation](https://pub.dev/packages/intl)
