Add flutter_localizations + intl, 12 ARB files (en/ru/es/de/fr/it/pt/zh/ja/ko/ar/hi), replace all hardcoded Russian UI strings with AppLocalizations, detect system locale on first launch, localise bottom nav bar labels, document rule in CLAUDE.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
289 lines
5.6 KiB
Dart
289 lines
5.6 KiB
Dart
// ignore: unused_import
|
|
import 'package:intl/intl.dart' as intl;
|
|
import 'app_localizations.dart';
|
|
|
|
// ignore_for_file: type=lint
|
|
|
|
/// The translations for Korean (`ko`).
|
|
class AppLocalizationsKo extends AppLocalizations {
|
|
AppLocalizationsKo([String locale = 'ko']) : super(locale);
|
|
|
|
@override
|
|
String get appTitle => 'FoodAI';
|
|
|
|
@override
|
|
String get greetingMorning => '좋은 아침이에요';
|
|
|
|
@override
|
|
String get greetingAfternoon => '안녕하세요';
|
|
|
|
@override
|
|
String get greetingEvening => '좋은 저녁이에요';
|
|
|
|
@override
|
|
String get caloriesUnit => 'kcal';
|
|
|
|
@override
|
|
String get gramsUnit => 'g';
|
|
|
|
@override
|
|
String get goalLabel => '목표:';
|
|
|
|
@override
|
|
String get consumed => '섭취';
|
|
|
|
@override
|
|
String get remaining => '남은';
|
|
|
|
@override
|
|
String get exceeded => '초과';
|
|
|
|
@override
|
|
String get proteinLabel => '단백질';
|
|
|
|
@override
|
|
String get fatLabel => '지방';
|
|
|
|
@override
|
|
String get carbsLabel => '탄수화물';
|
|
|
|
@override
|
|
String get today => '오늘';
|
|
|
|
@override
|
|
String get yesterday => '어제';
|
|
|
|
@override
|
|
String get mealsSection => '식사';
|
|
|
|
@override
|
|
String get addDish => '요리 추가';
|
|
|
|
@override
|
|
String get scanDish => '스캔';
|
|
|
|
@override
|
|
String get menu => '메뉴';
|
|
|
|
@override
|
|
String get dishHistory => '요리 기록';
|
|
|
|
@override
|
|
String get recommendCook => '요리 추천';
|
|
|
|
@override
|
|
String get camera => '카메라';
|
|
|
|
@override
|
|
String get gallery => '갤러리';
|
|
|
|
@override
|
|
String get analyzingPhoto => '사진 분석 중...';
|
|
|
|
@override
|
|
String get inQueue => '대기열에 있습니다';
|
|
|
|
@override
|
|
String queuePosition(int position) {
|
|
return '$position번째';
|
|
}
|
|
|
|
@override
|
|
String get processing => '처리 중...';
|
|
|
|
@override
|
|
String get upgradePrompt => '대기열 건너뛰기? 업그레이드 →';
|
|
|
|
@override
|
|
String get recognitionFailed => '인식 실패. 다시 시도하세요.';
|
|
|
|
@override
|
|
String get dishRecognition => '요리 인식';
|
|
|
|
@override
|
|
String get all => '전체';
|
|
|
|
@override
|
|
String get dishRecognized => '요리가 인식되었습니다';
|
|
|
|
@override
|
|
String get recognizing => '인식 중…';
|
|
|
|
@override
|
|
String get recognitionError => '인식 오류';
|
|
|
|
@override
|
|
String get dishResultTitle => '요리가 인식되었습니다';
|
|
|
|
@override
|
|
String get selectDish => '요리 선택';
|
|
|
|
@override
|
|
String get dishNotRecognized => '요리를 인식할 수 없습니다';
|
|
|
|
@override
|
|
String get tryAgain => '다시 시도';
|
|
|
|
@override
|
|
String get nutritionApproximate => '영양 정보는 근사치입니다 — 사진을 기반으로 추정되었습니다.';
|
|
|
|
@override
|
|
String get portion => '양';
|
|
|
|
@override
|
|
String get mealType => '식사 유형';
|
|
|
|
@override
|
|
String get dateLabel => '날짜';
|
|
|
|
@override
|
|
String get addToJournal => '일지에 추가';
|
|
|
|
@override
|
|
String get addFailed => '추가 실패. 다시 시도하세요.';
|
|
|
|
@override
|
|
String get historyTitle => '인식 기록';
|
|
|
|
@override
|
|
String get historyLoadError => '기록 로드 실패';
|
|
|
|
@override
|
|
String get retry => '재시도';
|
|
|
|
@override
|
|
String get noHistory => '인식 기록이 없습니다';
|
|
|
|
@override
|
|
String get profileTitle => '프로필';
|
|
|
|
@override
|
|
String get edit => '편집';
|
|
|
|
@override
|
|
String get bodyParams => '신체 매개변수';
|
|
|
|
@override
|
|
String get goalActivity => '목표 & 활동';
|
|
|
|
@override
|
|
String get nutrition => '영양';
|
|
|
|
@override
|
|
String get settings => '설정';
|
|
|
|
@override
|
|
String get height => '키';
|
|
|
|
@override
|
|
String get weight => '체중';
|
|
|
|
@override
|
|
String get age => '나이';
|
|
|
|
@override
|
|
String get gender => '성별';
|
|
|
|
@override
|
|
String get genderMale => '남성';
|
|
|
|
@override
|
|
String get genderFemale => '여성';
|
|
|
|
@override
|
|
String get goalLoss => '체중 감량';
|
|
|
|
@override
|
|
String get goalMaintain => '유지';
|
|
|
|
@override
|
|
String get goalGain => '근육 증가';
|
|
|
|
@override
|
|
String get activityLow => '낮음';
|
|
|
|
@override
|
|
String get activityMedium => '보통';
|
|
|
|
@override
|
|
String get activityHigh => '높음';
|
|
|
|
@override
|
|
String get calorieGoal => '칼로리 목표';
|
|
|
|
@override
|
|
String get mealTypes => '식사 유형';
|
|
|
|
@override
|
|
String get formulaNote => 'Mifflin-St Jeor 공식으로 계산';
|
|
|
|
@override
|
|
String get language => '언어';
|
|
|
|
@override
|
|
String get notSet => '설정 안 됨';
|
|
|
|
@override
|
|
String get calorieHint => '칼로리 목표를 계산하려면 신체 매개변수를 입력하세요';
|
|
|
|
@override
|
|
String get logout => '로그아웃';
|
|
|
|
@override
|
|
String get editProfile => '프로필 편집';
|
|
|
|
@override
|
|
String get cancel => '취소';
|
|
|
|
@override
|
|
String get save => '저장';
|
|
|
|
@override
|
|
String get nameLabel => '이름';
|
|
|
|
@override
|
|
String get heightCm => '키 (cm)';
|
|
|
|
@override
|
|
String get weightKg => '체중 (kg)';
|
|
|
|
@override
|
|
String get birthDate => '생년월일';
|
|
|
|
@override
|
|
String get nameRequired => '이름을 입력하세요';
|
|
|
|
@override
|
|
String get profileUpdated => '프로필이 업데이트되었습니다';
|
|
|
|
@override
|
|
String get profileSaveFailed => '저장 실패';
|
|
|
|
@override
|
|
String get mealTypeBreakfast => '아침';
|
|
|
|
@override
|
|
String get mealTypeSecondBreakfast => '두 번째 아침';
|
|
|
|
@override
|
|
String get mealTypeLunch => '점심';
|
|
|
|
@override
|
|
String get mealTypeAfternoonSnack => '간식';
|
|
|
|
@override
|
|
String get mealTypeDinner => '저녁';
|
|
|
|
@override
|
|
String get mealTypeSnack => '스낵';
|
|
|
|
@override
|
|
String get navHome => '홈';
|
|
|
|
@override
|
|
String get navProducts => '식품';
|
|
|
|
@override
|
|
String get navRecipes => '레시피';
|
|
}
|