7.0 KiB
7.0 KiB
翻訳実装状況 (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)
- BottomNavigationBar タブラベル (個人モード5個 + ビジネスモード4個)
- ホーム / Home
- スキャン / Scan
- ソムリエ / Sommelier
- マップ / Map
- マイページ / My Page
- 販促 / Promo
- 分析 / Analytics
- 店舗 / Shop
2. ホーム画面 (HomeScreen)
- AppBar タイトル
- お品書き作成 / Menu Creation
- 検索バー
- プレースホルダー: 銘柄・酒蔵・都道府県... / Brand, Brewery, Prefecture...
- ツールチップ
- 並び替え / Sort
- 都道府県で絞り込み / Filter by Prefecture
- お気に入りのみ / Favorites Only
- ヘルプ・ガイド / Help & Guide
- 並び替えメニュー
- 並び替え / Sort
- 新しい順(登録日) / Newest (Registration)
- 古い順(登録日) / Oldest (Registration)
- 名前順(あいうえお) / By Name (A-Z)
- カスタム(ドラッグ配置) / Custom (Drag & Drop)
- 空状態メッセージ
- お品書きに追加されたお酒はありません / No sake added to menu
- リスト画面に戻って... / Go back to list and select sake...
- SpeedDial (ビジネスモード)
- お品書きを作成 / Create Menu
- セットを作成 / Create Set
- ギャラリーから選択 / Select from Gallery
- カメラで撮影 / Take Photo
- ビジネスモードガイド
- ビジネスモードへようこそ / Welcome to Business Mode
- セット商品の作成 / Create Set Products
- インスタ販促 / Instagram Promotion
- 売上分析 / Sales Analytics
3. マイページ画面 (SoulScreen)
- AppBar タイトル
- マイページ / My Page
- プロフィールセクション
- プロフィール (ID) / Profile (ID)
- ニックネーム / Nickname
- 性別 / Gender
- 生年月日 / Date of Birth
- MBTI診断 / MBTI Type
- 未設定 / Not Set
- 性別選択ダイアログ
- 男性 / Male
- 女性 / Female
- その他 / Other
- 回答しない / Prefer not to say
- ダイアログ
- ニックネーム変更 / Change Nickname
- 呼び名を入力 / Enter your name
- MBTIタイプ選択 / Select MBTI Type
- 共通アクション
- 保存 / Save
- キャンセル / Cancel
- 削除 / Delete
- ガイドボタン
- ガイド・ヘルプを見る / View Guide & Help
- 設定セクション
- その他 / Others
- ゲーミフィケーション (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時間)
l10n.yaml作成- 現在のMapを
app_ja.arb/app_en.arbに変換 flutter pub getでコード生成- 各画面で
AppLocalizations.of(context)に置き換え
移行のタイミング
- 翻訳キーが100個を超えたら
- 3言語目 (フランス語/ドイツ語) 追加時
- パラメータ埋め込みが必要になった時
🧪 テスト方法
手動テスト
- 設定画面で「言語 / Language」を開く
- 「🇺🇸 English」を選択
- 以下を確認:
- BottomNavigationBarのタブが英語に変わる
- ホーム画面のAppBarが "Menu Creation" になる
- ソート画面が英語表示になる
- マイページが英語表示になる
翻訳漏れチェック
// 開発中に使用
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)
🐛 既知の問題
なし (現時点で正常動作)