// Simple translation helper for Ponshu Room Lite // // Usage: // ```dart // final t = Translations(locale); // Text(t['home']) // ``` class Translations { final String locale; Translations(this.locale); static const Map> _translations = { // Navigation 'home': {'ja': 'ホーム', 'en': 'Home'}, 'scan': {'ja': 'スキャン', 'en': 'Scan'}, 'sommelier': {'ja': 'ソムリエ', 'en': 'Sommelier'}, 'map': {'ja': 'マップ', 'en': 'Map'}, 'myPage': {'ja': 'マイページ', 'en': 'My Page'}, 'promo': {'ja': '販促', 'en': 'Promo'}, 'analytics': {'ja': '分析', 'en': 'Analytics'}, 'shop': {'ja': '店舗', 'en': 'Shop'}, // Home Screen 'menuCreation': {'ja': 'お品書き作成', 'en': 'Menu Creation'}, 'searchPlaceholder': {'ja': '銘柄・酒蔵・都道府県...', 'en': 'Brand, Brewery, Prefecture...'}, 'sort': {'ja': '並び替え', 'en': 'Sort'}, 'filterByPrefecture': {'ja': '都道府県で絞り込み', 'en': 'Filter by Prefecture'}, 'favoritesOnly': {'ja': 'お気に入りのみ', 'en': 'Favorites Only'}, 'helpGuide': {'ja': 'ヘルプ・ガイド', 'en': 'Help & Guide'}, 'noMenuItems': {'ja': 'お品書きに追加されたお酒はありません', 'en': 'No sake added to menu'}, 'goBackToList': {'ja': 'リスト画面に戻って、掲載したいお酒の\nチェックボックスを選択してください', 'en': 'Go back to list and select sake\nyou want to include'}, 'createMenu': {'ja': 'お品書きを作成', 'en': 'Create Menu'}, 'createSet': {'ja': 'セットを作成', 'en': 'Create Set'}, 'selectFromGallery': {'ja': 'ギャラリーから選択', 'en': 'Select from Gallery'}, 'takePhoto': {'ja': 'カメラで撮影', 'en': 'Take Photo'}, // Sort Menu 'sortTitle': {'ja': '並び替え', 'en': 'Sort'}, 'sortNewest': {'ja': '新しい順(登録日)', 'en': 'Newest (Registration)'}, 'sortOldest': {'ja': '古い順(登録日)', 'en': 'Oldest (Registration)'}, 'sortName': {'ja': '名前順(あいうえお)', 'en': 'By Name (A-Z)'}, 'sortCustom': {'ja': 'カスタム(ドラッグ配置)', 'en': 'Custom (Drag & Drop)'}, // Soul Screen (My Page) 'profile': {'ja': 'プロフィール (ID)', 'en': 'Profile (ID)'}, 'nickname': {'ja': 'ニックネーム', 'en': 'Nickname'}, 'notSet': {'ja': '未設定', 'en': 'Not Set'}, 'gender': {'ja': '性別', 'en': 'Gender'}, 'mbtiDiagnosis': {'ja': 'MBTI診断', 'en': 'MBTI Type'}, 'viewGuide': {'ja': 'ガイド・ヘルプを見る', 'en': 'View Guide & Help'}, 'otherSettings': {'ja': 'その他', 'en': 'Others'}, // Gender 'male': {'ja': '男性', 'en': 'Male'}, 'female': {'ja': '女性', 'en': 'Female'}, 'genderOther': {'ja': 'その他', 'en': 'Other'}, 'genderNotAnswer': {'ja': '回答しない', 'en': 'Prefer not to say'}, 'selectGender': {'ja': '性別を選択', 'en': 'Select Gender'}, // Dialogs 'changeNickname': {'ja': 'ニックネーム変更', 'en': 'Change Nickname'}, 'enterName': {'ja': '呼び名を入力', 'en': 'Enter your name'}, 'selectMbti': {'ja': 'MBTI タイプ選択', 'en': 'Select MBTI Type'}, 'mbtiDisclaimer': {'ja': '※AIによる独自の相性診断です。遊び心としてお楽しみください', 'en': '* AI-based compatibility analysis. For entertainment purposes only.'}, // Common Actions 'save': {'ja': '保存', 'en': 'Save'}, 'cancel': {'ja': 'キャンセル', 'en': 'Cancel'}, 'delete': {'ja': '削除', 'en': 'Delete'}, 'close': {'ja': '閉じる', 'en': 'Close'}, 'ok': {'ja': 'OK', 'en': 'OK'}, 'confirm': {'ja': '確認', 'en': 'Confirm'}, // Gamification 'levelAndTitle': {'ja': 'レベル&称号', 'en': 'Level & Title'}, 'levelDescription': {'ja': '日本酒を登録するとEXPが貯まり、レベルアップします。\n素敵な称号を目指しましょう!', 'en': 'Register sake to earn EXP and level up.\nAim for amazing titles!'}, 'badgeCollection': {'ja': 'バッジコレクション', 'en': 'Badge Collection'}, 'badgeDescription': {'ja': '特定の条件を満たすとバッジを獲得できます。\n「地域制覇」や「辛口党」など、様々なテーマがあります。', 'en': 'Earn badges by meeting specific conditions.\nVarious themes like "Regional Master" and "Dry Sake Lover".'}, // Business Mode Guide 'welcomeBusinessMode': {'ja': 'ビジネスモードへようこそ', 'en': 'Welcome to Business Mode'}, 'businessModeDesc': {'ja': '飲食店様向けの機能を集約しました。\nメニュー作成から販促まで、\nプロの仕事を強力にサポートします。', 'en': 'Features for restaurant professionals.\nFrom menu creation to promotion,\npowerfully supporting your work.'}, 'setProductCreation': {'ja': 'セット商品の作成', 'en': 'Create Set Products'}, 'setProductDesc': {'ja': '飲み比べセットやコース料理など、\n複数のお酒をまとめた「セット商品」を\n簡単に作成・管理できます。', 'en': 'Easily create and manage "set products"\nlike sake tasting sets and course menus.'}, 'instaPromo': {'ja': 'インスタ販促', 'en': 'Instagram Promotion'}, 'instaPromoDesc': {'ja': '本日のおすすめをSNSですぐに発信。\nInstaタブから、美しい画像を\nワンタップで生成できます。', 'en': 'Share today\'s recommendations on SNS.\nGenerate beautiful images with one tap\nfrom the Insta tab.'}, 'salesAnalytics': {'ja': '売上分析', 'en': 'Sales Analytics'}, 'salesAnalyticsDesc': {'ja': '売れ筋や味の傾向を分析。\nお客様に喜ばれるラインナップ作りを\nデータで支援します。', 'en': 'Analyze bestsellers and taste trends.\nData-driven support for creating\na lineup customers will love.'}, }; /// Get translation for a key String operator [](String key) { return _translations[key]?[locale] ?? _translations[key]?['ja'] ?? key; } /// Get translation with fallback String get(String key, {String? fallback}) { return _translations[key]?[locale] ?? _translations[key]?['ja'] ?? fallback ?? key; } /// Check if translation exists bool has(String key) { return _translations.containsKey(key); } }