ponshu-room-lite/docs/TRANSLATION_STATUS.md

235 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 翻訳実装状況 (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)