feat(l10n): 다국어 문자열 추가

- 옵션 메뉴, 통계, 도움말 등 UI 문자열 추가
- en, ko, ja, zh 지원
This commit is contained in:
JiWoong Sul
2026-01-21 17:34:39 +09:00
parent 7f44e95163
commit faf87eccb0
10 changed files with 1290 additions and 4 deletions

View File

@@ -1226,3 +1226,23 @@ String get elementChaos => _l('Chaos', '혼돈', 'カオス');
// 스킬 상세 정보 없음
String get skillNoDetails => _l('No details', '상세 정보 없음', '詳細情報なし');
// ============================================================================
// 알림 텍스트 (Notification Texts)
// ============================================================================
String get notifyLevelUp => _l('LEVEL UP!', '레벨 업!', 'レベルアップ!');
String notifyLevel(int level) =>
_l('Level $level', '레벨 $level', 'レベル $level');
String get notifyQuestComplete =>
_l('QUEST COMPLETE!', '퀘스트 완료!', 'クエスト完了!');
String get notifyPrologueComplete =>
_l('PROLOGUE COMPLETE!', '프롤로그 완료!', 'プロローグ完了!');
String notifyActComplete(int actNumber) => _l(
'ACT $actNumber COMPLETE!',
'${actNumber}막 완료!',
'${actNumber}幕完了!',
);
String get notifyNewSpell => _l('NEW SPELL!', '새 주문!', '新しい呪文!');
String get notifyNewEquipment => _l('NEW EQUIPMENT!', '새 장비!', '新しい装備!');
String get notifyBossDefeated => _l('BOSS DEFEATED!', '보스 처치!', 'ボス撃破!');

View File

@@ -310,5 +310,168 @@
"@endingTapToSkip": { "description": "Tap to skip hint" },
"endingHoldToSpeedUp": "HOLD TO SPEED UP",
"@endingHoldToSpeedUp": { "description": "Hold to speed up scrolling hint" }
"@endingHoldToSpeedUp": { "description": "Hold to speed up scrolling hint" },
"menuTitle": "MENU",
"@menuTitle": { "description": "Menu panel title" },
"optionsTitle": "OPTIONS",
"@optionsTitle": { "description": "Options menu title" },
"soundTitle": "SOUND",
"@soundTitle": { "description": "Sound dialog title" },
"controlSection": "CONTROL",
"@controlSection": { "description": "Control section title" },
"infoSection": "INFO",
"@infoSection": { "description": "Info section title" },
"settingsSection": "SETTINGS",
"@settingsSection": { "description": "Settings section title" },
"saveExitSection": "SAVE / EXIT",
"@saveExitSection": { "description": "Save/Exit section title" },
"ok": "OK",
"@ok": { "description": "OK button" },
"rechargeButton": "RECHARGE",
"@rechargeButton": { "description": "Recharge button" },
"createButton": "CREATE",
"@createButton": { "description": "Create button" },
"previewTitle": "PREVIEW",
"@previewTitle": { "description": "Preview panel title" },
"nameTitle": "NAME",
"@nameTitle": { "description": "Name panel title" },
"statsTitle": "STATS",
"@statsTitle": { "description": "Stats panel title" },
"raceTitle": "RACE",
"@raceTitle": { "description": "Race panel title" },
"classSection": "CLASS",
"@classSection": { "description": "Class panel title" },
"bgmLabel": "BGM",
"@bgmLabel": { "description": "BGM volume label" },
"sfxLabel": "SFX",
"@sfxLabel": { "description": "SFX volume label" },
"hpLabel": "HP",
"@hpLabel": { "description": "HP bar label" },
"mpLabel": "MP",
"@mpLabel": { "description": "MP bar label" },
"expLabel": "EXP",
"@expLabel": { "description": "EXP bar label" },
"notifyLevelUp": "LEVEL UP!",
"@notifyLevelUp": { "description": "Level up notification title" },
"notifyLevel": "Level {level}",
"@notifyLevel": {
"description": "Level notification subtitle",
"placeholders": {
"level": { "type": "int" }
}
},
"notifyQuestComplete": "QUEST COMPLETE!",
"@notifyQuestComplete": { "description": "Quest complete notification title" },
"notifyPrologueComplete": "PROLOGUE COMPLETE!",
"@notifyPrologueComplete": { "description": "Prologue complete notification title" },
"notifyActComplete": "ACT {number} COMPLETE!",
"@notifyActComplete": {
"description": "Act complete notification title",
"placeholders": {
"number": { "type": "int" }
}
},
"notifyNewSpell": "NEW SPELL!",
"@notifyNewSpell": { "description": "New spell notification title" },
"notifyNewEquipment": "NEW EQUIPMENT!",
"@notifyNewEquipment": { "description": "New equipment notification title" },
"notifyBossDefeated": "BOSS DEFEATED!",
"@notifyBossDefeated": { "description": "Boss defeated notification title" },
"rechargeRollsTitle": "RECHARGE ROLLS",
"@rechargeRollsTitle": { "description": "Recharge rolls dialog title" },
"rechargeRollsFree": "Recharge 5 rolls for free?",
"@rechargeRollsFree": { "description": "Recharge rolls free user message" },
"rechargeRollsAd": "Watch an ad to recharge 5 rolls?",
"@rechargeRollsAd": { "description": "Recharge rolls ad message" },
"debugTitle": "DEBUG",
"@debugTitle": { "description": "Debug section title" },
"debugCheatsTitle": "DEBUG CHEATS",
"@debugCheatsTitle": { "description": "Debug cheats section title" },
"debugToolsTitle": "DEBUG TOOLS",
"@debugToolsTitle": { "description": "Debug tools section title" },
"debugDeveloperTools": "DEVELOPER TOOLS",
"@debugDeveloperTools": { "description": "Developer tools header" },
"debugSkipTask": "SKIP TASK (L+1)",
"@debugSkipTask": { "description": "Skip task cheat label" },
"debugSkipTaskDesc": "Complete task instantly",
"@debugSkipTaskDesc": { "description": "Skip task cheat description" },
"debugSkipQuest": "SKIP QUEST (Q!)",
"@debugSkipQuest": { "description": "Skip quest cheat label" },
"debugSkipQuestDesc": "Complete quest instantly",
"@debugSkipQuestDesc": { "description": "Skip quest cheat description" },
"debugSkipAct": "SKIP ACT (P!)",
"@debugSkipAct": { "description": "Skip act cheat label" },
"debugSkipActDesc": "Complete act instantly",
"@debugSkipActDesc": { "description": "Skip act cheat description" },
"debugCreateTestCharacter": "CREATE TEST CHARACTER",
"@debugCreateTestCharacter": { "description": "Create test character button" },
"debugCreateTestCharacterDesc": "Register Level 100 character to Hall of Fame",
"@debugCreateTestCharacterDesc": { "description": "Create test character description" },
"debugCreateTestCharacterTitle": "CREATE TEST CHARACTER?",
"@debugCreateTestCharacterTitle": { "description": "Create test character dialog title" },
"debugCreateTestCharacterMessage": "Current character will be converted to Level 100\nand registered to the Hall of Fame.\n\n⚠ Current save file will be deleted.\nThis action cannot be undone.",
"@debugCreateTestCharacterMessage": { "description": "Create test character confirmation message" },
"debugTurbo": "DEBUG: TURBO (20x)",
"@debugTurbo": { "description": "Debug turbo mode label" },
"debugIapPurchased": "IAP PURCHASED",
"@debugIapPurchased": { "description": "IAP purchased debug toggle" },
"debugIapPurchasedDesc": "ON: Behave as paid user (ads removed)",
"@debugIapPurchasedDesc": { "description": "IAP purchased debug description" },
"debugOfflineHours": "OFFLINE HOURS",
"@debugOfflineHours": { "description": "Offline hours debug label" },
"debugOfflineHoursDesc": "Test return rewards (applies on restart)",
"@debugOfflineHoursDesc": { "description": "Offline hours debug description" },
"debugTestCharacterDesc": "Modify current character to Level 100\nand register to the Hall of Fame.",
"@debugTestCharacterDesc": { "description": "Test character creation description" }
}

View File

@@ -93,5 +93,57 @@
"endingHallOfFameButton": "殿堂入り",
"endingSkip": "スキップ",
"endingTapToSkip": "タップでスキップ",
"endingHoldToSpeedUp": "長押しで高速スクロール"
"endingHoldToSpeedUp": "長押しで高速スクロール",
"menuTitle": "MENU",
"optionsTitle": "OPTIONS",
"soundTitle": "SOUND",
"controlSection": "CONTROL",
"infoSection": "INFO",
"settingsSection": "SETTINGS",
"saveExitSection": "SAVE / EXIT",
"ok": "OK",
"rechargeButton": "RECHARGE",
"createButton": "CREATE",
"previewTitle": "PREVIEW",
"nameTitle": "NAME",
"statsTitle": "STATS",
"raceTitle": "RACE",
"classSection": "CLASS",
"bgmLabel": "BGM",
"sfxLabel": "SFX",
"hpLabel": "HP",
"mpLabel": "MP",
"expLabel": "EXP",
"notifyLevelUp": "LEVEL UP!",
"notifyLevel": "Level {level}",
"notifyQuestComplete": "QUEST COMPLETE!",
"notifyPrologueComplete": "PROLOGUE COMPLETE!",
"notifyActComplete": "ACT {number} COMPLETE!",
"notifyNewSpell": "NEW SPELL!",
"notifyNewEquipment": "NEW EQUIPMENT!",
"notifyBossDefeated": "BOSS DEFEATED!",
"rechargeRollsTitle": "RECHARGE ROLLS",
"rechargeRollsFree": "Recharge 5 rolls for free?",
"rechargeRollsAd": "Watch an ad to recharge 5 rolls?",
"debugTitle": "DEBUG",
"debugCheatsTitle": "DEBUG CHEATS",
"debugToolsTitle": "DEBUG TOOLS",
"debugDeveloperTools": "DEVELOPER TOOLS",
"debugSkipTask": "SKIP TASK (L+1)",
"debugSkipTaskDesc": "Complete task instantly",
"debugSkipQuest": "SKIP QUEST (Q!)",
"debugSkipQuestDesc": "Complete quest instantly",
"debugSkipAct": "SKIP ACT (P!)",
"debugSkipActDesc": "Complete act instantly",
"debugCreateTestCharacter": "CREATE TEST CHARACTER",
"debugCreateTestCharacterDesc": "Register Level 100 character to Hall of Fame",
"debugCreateTestCharacterTitle": "CREATE TEST CHARACTER?",
"debugCreateTestCharacterMessage": "Current character will be converted to Level 100\nand registered to the Hall of Fame.\n\n⚠ Current save file will be deleted.\nThis action cannot be undone.",
"debugTurbo": "DEBUG: TURBO (20x)",
"debugIapPurchased": "IAP PURCHASED",
"debugIapPurchasedDesc": "ON: Behave as paid user (ads removed)",
"debugOfflineHours": "OFFLINE HOURS",
"debugOfflineHoursDesc": "Test return rewards (applies on restart)",
"debugTestCharacterDesc": "Modify current character to Level 100\nand register to the Hall of Fame."
}

View File

@@ -93,5 +93,57 @@
"endingHallOfFameButton": "명예의 전당",
"endingSkip": "건너뛰기",
"endingTapToSkip": "탭하여 건너뛰기",
"endingHoldToSpeedUp": "길게 누르면 빨리 스크롤"
"endingHoldToSpeedUp": "길게 누르면 빨리 스크롤",
"menuTitle": "메뉴",
"optionsTitle": "옵션",
"soundTitle": "사운드",
"controlSection": "제어",
"infoSection": "정보",
"settingsSection": "설정",
"saveExitSection": "저장 / 종료",
"ok": "확인",
"rechargeButton": "충전",
"createButton": "생성",
"previewTitle": "미리보기",
"nameTitle": "이름",
"statsTitle": "능력치",
"raceTitle": "종족",
"classSection": "직업",
"bgmLabel": "BGM",
"sfxLabel": "효과음",
"hpLabel": "HP",
"mpLabel": "MP",
"expLabel": "경험치",
"notifyLevelUp": "레벨 업!",
"notifyLevel": "레벨 {level}",
"notifyQuestComplete": "퀘스트 완료!",
"notifyPrologueComplete": "프롤로그 완료!",
"notifyActComplete": "{number}막 완료!",
"notifyNewSpell": "새 주문!",
"notifyNewEquipment": "새 장비!",
"notifyBossDefeated": "보스 처치!",
"rechargeRollsTitle": "굴리기 충전",
"rechargeRollsFree": "무료로 5회 충전하시겠습니까?",
"rechargeRollsAd": "광고를 보고 5회 충전하시겠습니까?",
"debugTitle": "디버그",
"debugCheatsTitle": "디버그 치트",
"debugToolsTitle": "디버그 도구",
"debugDeveloperTools": "개발자 도구",
"debugSkipTask": "태스크 건너뛰기 (L+1)",
"debugSkipTaskDesc": "태스크 즉시 완료",
"debugSkipQuest": "퀘스트 건너뛰기 (Q!)",
"debugSkipQuestDesc": "퀘스트 즉시 완료",
"debugSkipAct": "액트 건너뛰기 (P!)",
"debugSkipActDesc": "액트 즉시 완료",
"debugCreateTestCharacter": "테스트 캐릭터 생성",
"debugCreateTestCharacterDesc": "레벨 100 캐릭터를 명예의 전당에 등록",
"debugCreateTestCharacterTitle": "테스트 캐릭터 생성?",
"debugCreateTestCharacterMessage": "현재 캐릭터가 레벨 100으로 변환되어\n명예의 전당에 등록됩니다.\n\n⚠ 현재 세이브 파일이 삭제됩니다.\n이 작업은 되돌릴 수 없습니다.",
"debugTurbo": "디버그: 터보 (20x)",
"debugIapPurchased": "IAP 구매됨",
"debugIapPurchasedDesc": "ON: 유료 유저로 동작 (광고 제거)",
"debugOfflineHours": "오프라인 시간",
"debugOfflineHoursDesc": "복귀 보상 테스트 (재시작 시 적용)",
"debugTestCharacterDesc": "현재 캐릭터를 레벨 100으로 수정하여\n명예의 전당에 등록합니다."
}

View File

@@ -652,6 +652,312 @@ abstract class L10n {
/// In en, this message translates to:
/// **'HOLD TO SPEED UP'**
String get endingHoldToSpeedUp;
/// Menu panel title
///
/// In en, this message translates to:
/// **'MENU'**
String get menuTitle;
/// Options menu title
///
/// In en, this message translates to:
/// **'OPTIONS'**
String get optionsTitle;
/// Sound dialog title
///
/// In en, this message translates to:
/// **'SOUND'**
String get soundTitle;
/// Control section title
///
/// In en, this message translates to:
/// **'CONTROL'**
String get controlSection;
/// Info section title
///
/// In en, this message translates to:
/// **'INFO'**
String get infoSection;
/// Settings section title
///
/// In en, this message translates to:
/// **'SETTINGS'**
String get settingsSection;
/// Save/Exit section title
///
/// In en, this message translates to:
/// **'SAVE / EXIT'**
String get saveExitSection;
/// OK button
///
/// In en, this message translates to:
/// **'OK'**
String get ok;
/// Recharge button
///
/// In en, this message translates to:
/// **'RECHARGE'**
String get rechargeButton;
/// Create button
///
/// In en, this message translates to:
/// **'CREATE'**
String get createButton;
/// Preview panel title
///
/// In en, this message translates to:
/// **'PREVIEW'**
String get previewTitle;
/// Name panel title
///
/// In en, this message translates to:
/// **'NAME'**
String get nameTitle;
/// Stats panel title
///
/// In en, this message translates to:
/// **'STATS'**
String get statsTitle;
/// Race panel title
///
/// In en, this message translates to:
/// **'RACE'**
String get raceTitle;
/// Class panel title
///
/// In en, this message translates to:
/// **'CLASS'**
String get classSection;
/// BGM volume label
///
/// In en, this message translates to:
/// **'BGM'**
String get bgmLabel;
/// SFX volume label
///
/// In en, this message translates to:
/// **'SFX'**
String get sfxLabel;
/// HP bar label
///
/// In en, this message translates to:
/// **'HP'**
String get hpLabel;
/// MP bar label
///
/// In en, this message translates to:
/// **'MP'**
String get mpLabel;
/// EXP bar label
///
/// In en, this message translates to:
/// **'EXP'**
String get expLabel;
/// Level up notification title
///
/// In en, this message translates to:
/// **'LEVEL UP!'**
String get notifyLevelUp;
/// Level notification subtitle
///
/// In en, this message translates to:
/// **'Level {level}'**
String notifyLevel(int level);
/// Quest complete notification title
///
/// In en, this message translates to:
/// **'QUEST COMPLETE!'**
String get notifyQuestComplete;
/// Prologue complete notification title
///
/// In en, this message translates to:
/// **'PROLOGUE COMPLETE!'**
String get notifyPrologueComplete;
/// Act complete notification title
///
/// In en, this message translates to:
/// **'ACT {number} COMPLETE!'**
String notifyActComplete(int number);
/// New spell notification title
///
/// In en, this message translates to:
/// **'NEW SPELL!'**
String get notifyNewSpell;
/// New equipment notification title
///
/// In en, this message translates to:
/// **'NEW EQUIPMENT!'**
String get notifyNewEquipment;
/// Boss defeated notification title
///
/// In en, this message translates to:
/// **'BOSS DEFEATED!'**
String get notifyBossDefeated;
/// Recharge rolls dialog title
///
/// In en, this message translates to:
/// **'RECHARGE ROLLS'**
String get rechargeRollsTitle;
/// Recharge rolls free user message
///
/// In en, this message translates to:
/// **'Recharge 5 rolls for free?'**
String get rechargeRollsFree;
/// Recharge rolls ad message
///
/// In en, this message translates to:
/// **'Watch an ad to recharge 5 rolls?'**
String get rechargeRollsAd;
/// Debug section title
///
/// In en, this message translates to:
/// **'DEBUG'**
String get debugTitle;
/// Debug cheats section title
///
/// In en, this message translates to:
/// **'DEBUG CHEATS'**
String get debugCheatsTitle;
/// Debug tools section title
///
/// In en, this message translates to:
/// **'DEBUG TOOLS'**
String get debugToolsTitle;
/// Developer tools header
///
/// In en, this message translates to:
/// **'DEVELOPER TOOLS'**
String get debugDeveloperTools;
/// Skip task cheat label
///
/// In en, this message translates to:
/// **'SKIP TASK (L+1)'**
String get debugSkipTask;
/// Skip task cheat description
///
/// In en, this message translates to:
/// **'Complete task instantly'**
String get debugSkipTaskDesc;
/// Skip quest cheat label
///
/// In en, this message translates to:
/// **'SKIP QUEST (Q!)'**
String get debugSkipQuest;
/// Skip quest cheat description
///
/// In en, this message translates to:
/// **'Complete quest instantly'**
String get debugSkipQuestDesc;
/// Skip act cheat label
///
/// In en, this message translates to:
/// **'SKIP ACT (P!)'**
String get debugSkipAct;
/// Skip act cheat description
///
/// In en, this message translates to:
/// **'Complete act instantly'**
String get debugSkipActDesc;
/// Create test character button
///
/// In en, this message translates to:
/// **'CREATE TEST CHARACTER'**
String get debugCreateTestCharacter;
/// Create test character description
///
/// In en, this message translates to:
/// **'Register Level 100 character to Hall of Fame'**
String get debugCreateTestCharacterDesc;
/// Create test character dialog title
///
/// In en, this message translates to:
/// **'CREATE TEST CHARACTER?'**
String get debugCreateTestCharacterTitle;
/// Create test character confirmation message
///
/// In en, this message translates to:
/// **'Current character will be converted to Level 100\nand registered to the Hall of Fame.\n\n⚠ Current save file will be deleted.\nThis action cannot be undone.'**
String get debugCreateTestCharacterMessage;
/// Debug turbo mode label
///
/// In en, this message translates to:
/// **'DEBUG: TURBO (20x)'**
String get debugTurbo;
/// IAP purchased debug toggle
///
/// In en, this message translates to:
/// **'IAP PURCHASED'**
String get debugIapPurchased;
/// IAP purchased debug description
///
/// In en, this message translates to:
/// **'ON: Behave as paid user (ads removed)'**
String get debugIapPurchasedDesc;
/// Offline hours debug label
///
/// In en, this message translates to:
/// **'OFFLINE HOURS'**
String get debugOfflineHours;
/// Offline hours debug description
///
/// In en, this message translates to:
/// **'Test return rewards (applies on restart)'**
String get debugOfflineHoursDesc;
/// Test character creation description
///
/// In en, this message translates to:
/// **'Modify current character to Level 100\nand register to the Hall of Fame.'**
String get debugTestCharacterDesc;
}
class _L10nDelegate extends LocalizationsDelegate<L10n> {

View File

@@ -297,4 +297,165 @@ class L10nEn extends L10n {
@override
String get endingHoldToSpeedUp => 'HOLD TO SPEED UP';
@override
String get menuTitle => 'MENU';
@override
String get optionsTitle => 'OPTIONS';
@override
String get soundTitle => 'SOUND';
@override
String get controlSection => 'CONTROL';
@override
String get infoSection => 'INFO';
@override
String get settingsSection => 'SETTINGS';
@override
String get saveExitSection => 'SAVE / EXIT';
@override
String get ok => 'OK';
@override
String get rechargeButton => 'RECHARGE';
@override
String get createButton => 'CREATE';
@override
String get previewTitle => 'PREVIEW';
@override
String get nameTitle => 'NAME';
@override
String get statsTitle => 'STATS';
@override
String get raceTitle => 'RACE';
@override
String get classSection => 'CLASS';
@override
String get bgmLabel => 'BGM';
@override
String get sfxLabel => 'SFX';
@override
String get hpLabel => 'HP';
@override
String get mpLabel => 'MP';
@override
String get expLabel => 'EXP';
@override
String get notifyLevelUp => 'LEVEL UP!';
@override
String notifyLevel(int level) {
return 'Level $level';
}
@override
String get notifyQuestComplete => 'QUEST COMPLETE!';
@override
String get notifyPrologueComplete => 'PROLOGUE COMPLETE!';
@override
String notifyActComplete(int number) {
return 'ACT $number COMPLETE!';
}
@override
String get notifyNewSpell => 'NEW SPELL!';
@override
String get notifyNewEquipment => 'NEW EQUIPMENT!';
@override
String get notifyBossDefeated => 'BOSS DEFEATED!';
@override
String get rechargeRollsTitle => 'RECHARGE ROLLS';
@override
String get rechargeRollsFree => 'Recharge 5 rolls for free?';
@override
String get rechargeRollsAd => 'Watch an ad to recharge 5 rolls?';
@override
String get debugTitle => 'DEBUG';
@override
String get debugCheatsTitle => 'DEBUG CHEATS';
@override
String get debugToolsTitle => 'DEBUG TOOLS';
@override
String get debugDeveloperTools => 'DEVELOPER TOOLS';
@override
String get debugSkipTask => 'SKIP TASK (L+1)';
@override
String get debugSkipTaskDesc => 'Complete task instantly';
@override
String get debugSkipQuest => 'SKIP QUEST (Q!)';
@override
String get debugSkipQuestDesc => 'Complete quest instantly';
@override
String get debugSkipAct => 'SKIP ACT (P!)';
@override
String get debugSkipActDesc => 'Complete act instantly';
@override
String get debugCreateTestCharacter => 'CREATE TEST CHARACTER';
@override
String get debugCreateTestCharacterDesc =>
'Register Level 100 character to Hall of Fame';
@override
String get debugCreateTestCharacterTitle => 'CREATE TEST CHARACTER?';
@override
String get debugCreateTestCharacterMessage =>
'Current character will be converted to Level 100\nand registered to the Hall of Fame.\n\n⚠️ Current save file will be deleted.\nThis action cannot be undone.';
@override
String get debugTurbo => 'DEBUG: TURBO (20x)';
@override
String get debugIapPurchased => 'IAP PURCHASED';
@override
String get debugIapPurchasedDesc => 'ON: Behave as paid user (ads removed)';
@override
String get debugOfflineHours => 'OFFLINE HOURS';
@override
String get debugOfflineHoursDesc =>
'Test return rewards (applies on restart)';
@override
String get debugTestCharacterDesc =>
'Modify current character to Level 100\nand register to the Hall of Fame.';
}

View File

@@ -297,4 +297,165 @@ class L10nJa extends L10n {
@override
String get endingHoldToSpeedUp => '長押しで高速スクロール';
@override
String get menuTitle => 'MENU';
@override
String get optionsTitle => 'OPTIONS';
@override
String get soundTitle => 'SOUND';
@override
String get controlSection => 'CONTROL';
@override
String get infoSection => 'INFO';
@override
String get settingsSection => 'SETTINGS';
@override
String get saveExitSection => 'SAVE / EXIT';
@override
String get ok => 'OK';
@override
String get rechargeButton => 'RECHARGE';
@override
String get createButton => 'CREATE';
@override
String get previewTitle => 'PREVIEW';
@override
String get nameTitle => 'NAME';
@override
String get statsTitle => 'STATS';
@override
String get raceTitle => 'RACE';
@override
String get classSection => 'CLASS';
@override
String get bgmLabel => 'BGM';
@override
String get sfxLabel => 'SFX';
@override
String get hpLabel => 'HP';
@override
String get mpLabel => 'MP';
@override
String get expLabel => 'EXP';
@override
String get notifyLevelUp => 'LEVEL UP!';
@override
String notifyLevel(int level) {
return 'Level $level';
}
@override
String get notifyQuestComplete => 'QUEST COMPLETE!';
@override
String get notifyPrologueComplete => 'PROLOGUE COMPLETE!';
@override
String notifyActComplete(int number) {
return 'ACT $number COMPLETE!';
}
@override
String get notifyNewSpell => 'NEW SPELL!';
@override
String get notifyNewEquipment => 'NEW EQUIPMENT!';
@override
String get notifyBossDefeated => 'BOSS DEFEATED!';
@override
String get rechargeRollsTitle => 'RECHARGE ROLLS';
@override
String get rechargeRollsFree => 'Recharge 5 rolls for free?';
@override
String get rechargeRollsAd => 'Watch an ad to recharge 5 rolls?';
@override
String get debugTitle => 'DEBUG';
@override
String get debugCheatsTitle => 'DEBUG CHEATS';
@override
String get debugToolsTitle => 'DEBUG TOOLS';
@override
String get debugDeveloperTools => 'DEVELOPER TOOLS';
@override
String get debugSkipTask => 'SKIP TASK (L+1)';
@override
String get debugSkipTaskDesc => 'Complete task instantly';
@override
String get debugSkipQuest => 'SKIP QUEST (Q!)';
@override
String get debugSkipQuestDesc => 'Complete quest instantly';
@override
String get debugSkipAct => 'SKIP ACT (P!)';
@override
String get debugSkipActDesc => 'Complete act instantly';
@override
String get debugCreateTestCharacter => 'CREATE TEST CHARACTER';
@override
String get debugCreateTestCharacterDesc =>
'Register Level 100 character to Hall of Fame';
@override
String get debugCreateTestCharacterTitle => 'CREATE TEST CHARACTER?';
@override
String get debugCreateTestCharacterMessage =>
'Current character will be converted to Level 100\nand registered to the Hall of Fame.\n\n⚠️ Current save file will be deleted.\nThis action cannot be undone.';
@override
String get debugTurbo => 'DEBUG: TURBO (20x)';
@override
String get debugIapPurchased => 'IAP PURCHASED';
@override
String get debugIapPurchasedDesc => 'ON: Behave as paid user (ads removed)';
@override
String get debugOfflineHours => 'OFFLINE HOURS';
@override
String get debugOfflineHoursDesc =>
'Test return rewards (applies on restart)';
@override
String get debugTestCharacterDesc =>
'Modify current character to Level 100\nand register to the Hall of Fame.';
}

View File

@@ -297,4 +297,162 @@ class L10nKo extends L10n {
@override
String get endingHoldToSpeedUp => '길게 누르면 빨리 스크롤';
@override
String get menuTitle => '메뉴';
@override
String get optionsTitle => '옵션';
@override
String get soundTitle => '사운드';
@override
String get controlSection => '제어';
@override
String get infoSection => '정보';
@override
String get settingsSection => '설정';
@override
String get saveExitSection => '저장 / 종료';
@override
String get ok => '확인';
@override
String get rechargeButton => '충전';
@override
String get createButton => '생성';
@override
String get previewTitle => '미리보기';
@override
String get nameTitle => '이름';
@override
String get statsTitle => '능력치';
@override
String get raceTitle => '종족';
@override
String get classSection => '직업';
@override
String get bgmLabel => 'BGM';
@override
String get sfxLabel => '효과음';
@override
String get hpLabel => 'HP';
@override
String get mpLabel => 'MP';
@override
String get expLabel => '경험치';
@override
String get notifyLevelUp => '레벨 업!';
@override
String notifyLevel(int level) {
return '레벨 $level';
}
@override
String get notifyQuestComplete => '퀘스트 완료!';
@override
String get notifyPrologueComplete => '프롤로그 완료!';
@override
String notifyActComplete(int number) {
return '$number막 완료!';
}
@override
String get notifyNewSpell => '새 주문!';
@override
String get notifyNewEquipment => '새 장비!';
@override
String get notifyBossDefeated => '보스 처치!';
@override
String get rechargeRollsTitle => '굴리기 충전';
@override
String get rechargeRollsFree => '무료로 5회 충전하시겠습니까?';
@override
String get rechargeRollsAd => '광고를 보고 5회 충전하시겠습니까?';
@override
String get debugTitle => '디버그';
@override
String get debugCheatsTitle => '디버그 치트';
@override
String get debugToolsTitle => '디버그 도구';
@override
String get debugDeveloperTools => '개발자 도구';
@override
String get debugSkipTask => '태스크 건너뛰기 (L+1)';
@override
String get debugSkipTaskDesc => '태스크 즉시 완료';
@override
String get debugSkipQuest => '퀘스트 건너뛰기 (Q!)';
@override
String get debugSkipQuestDesc => '퀘스트 즉시 완료';
@override
String get debugSkipAct => '액트 건너뛰기 (P!)';
@override
String get debugSkipActDesc => '액트 즉시 완료';
@override
String get debugCreateTestCharacter => '테스트 캐릭터 생성';
@override
String get debugCreateTestCharacterDesc => '레벨 100 캐릭터를 명예의 전당에 등록';
@override
String get debugCreateTestCharacterTitle => '테스트 캐릭터 생성?';
@override
String get debugCreateTestCharacterMessage =>
'현재 캐릭터가 레벨 100으로 변환되어\n명예의 전당에 등록됩니다.\n\n⚠️ 현재 세이브 파일이 삭제됩니다.\n이 작업은 되돌릴 수 없습니다.';
@override
String get debugTurbo => '디버그: 터보 (20x)';
@override
String get debugIapPurchased => 'IAP 구매됨';
@override
String get debugIapPurchasedDesc => 'ON: 유료 유저로 동작 (광고 제거)';
@override
String get debugOfflineHours => '오프라인 시간';
@override
String get debugOfflineHoursDesc => '복귀 보상 테스트 (재시작 시 적용)';
@override
String get debugTestCharacterDesc => '현재 캐릭터를 레벨 100으로 수정하여\n명예의 전당에 등록합니다.';
}

View File

@@ -297,4 +297,165 @@ class L10nZh extends L10n {
@override
String get endingHoldToSpeedUp => '长按加速滚动';
@override
String get menuTitle => 'MENU';
@override
String get optionsTitle => 'OPTIONS';
@override
String get soundTitle => 'SOUND';
@override
String get controlSection => 'CONTROL';
@override
String get infoSection => 'INFO';
@override
String get settingsSection => 'SETTINGS';
@override
String get saveExitSection => 'SAVE / EXIT';
@override
String get ok => 'OK';
@override
String get rechargeButton => 'RECHARGE';
@override
String get createButton => 'CREATE';
@override
String get previewTitle => 'PREVIEW';
@override
String get nameTitle => 'NAME';
@override
String get statsTitle => 'STATS';
@override
String get raceTitle => 'RACE';
@override
String get classSection => 'CLASS';
@override
String get bgmLabel => 'BGM';
@override
String get sfxLabel => 'SFX';
@override
String get hpLabel => 'HP';
@override
String get mpLabel => 'MP';
@override
String get expLabel => 'EXP';
@override
String get notifyLevelUp => 'LEVEL UP!';
@override
String notifyLevel(int level) {
return 'Level $level';
}
@override
String get notifyQuestComplete => 'QUEST COMPLETE!';
@override
String get notifyPrologueComplete => 'PROLOGUE COMPLETE!';
@override
String notifyActComplete(int number) {
return 'ACT $number COMPLETE!';
}
@override
String get notifyNewSpell => 'NEW SPELL!';
@override
String get notifyNewEquipment => 'NEW EQUIPMENT!';
@override
String get notifyBossDefeated => 'BOSS DEFEATED!';
@override
String get rechargeRollsTitle => 'RECHARGE ROLLS';
@override
String get rechargeRollsFree => 'Recharge 5 rolls for free?';
@override
String get rechargeRollsAd => 'Watch an ad to recharge 5 rolls?';
@override
String get debugTitle => 'DEBUG';
@override
String get debugCheatsTitle => 'DEBUG CHEATS';
@override
String get debugToolsTitle => 'DEBUG TOOLS';
@override
String get debugDeveloperTools => 'DEVELOPER TOOLS';
@override
String get debugSkipTask => 'SKIP TASK (L+1)';
@override
String get debugSkipTaskDesc => 'Complete task instantly';
@override
String get debugSkipQuest => 'SKIP QUEST (Q!)';
@override
String get debugSkipQuestDesc => 'Complete quest instantly';
@override
String get debugSkipAct => 'SKIP ACT (P!)';
@override
String get debugSkipActDesc => 'Complete act instantly';
@override
String get debugCreateTestCharacter => 'CREATE TEST CHARACTER';
@override
String get debugCreateTestCharacterDesc =>
'Register Level 100 character to Hall of Fame';
@override
String get debugCreateTestCharacterTitle => 'CREATE TEST CHARACTER?';
@override
String get debugCreateTestCharacterMessage =>
'Current character will be converted to Level 100\nand registered to the Hall of Fame.\n\n⚠️ Current save file will be deleted.\nThis action cannot be undone.';
@override
String get debugTurbo => 'DEBUG: TURBO (20x)';
@override
String get debugIapPurchased => 'IAP PURCHASED';
@override
String get debugIapPurchasedDesc => 'ON: Behave as paid user (ads removed)';
@override
String get debugOfflineHours => 'OFFLINE HOURS';
@override
String get debugOfflineHoursDesc =>
'Test return rewards (applies on restart)';
@override
String get debugTestCharacterDesc =>
'Modify current character to Level 100\nand register to the Hall of Fame.';
}

View File

@@ -93,5 +93,57 @@
"endingHallOfFameButton": "荣誉殿堂",
"endingSkip": "跳过",
"endingTapToSkip": "点击跳过",
"endingHoldToSpeedUp": "长按加速滚动"
"endingHoldToSpeedUp": "长按加速滚动",
"menuTitle": "MENU",
"optionsTitle": "OPTIONS",
"soundTitle": "SOUND",
"controlSection": "CONTROL",
"infoSection": "INFO",
"settingsSection": "SETTINGS",
"saveExitSection": "SAVE / EXIT",
"ok": "OK",
"rechargeButton": "RECHARGE",
"createButton": "CREATE",
"previewTitle": "PREVIEW",
"nameTitle": "NAME",
"statsTitle": "STATS",
"raceTitle": "RACE",
"classSection": "CLASS",
"bgmLabel": "BGM",
"sfxLabel": "SFX",
"hpLabel": "HP",
"mpLabel": "MP",
"expLabel": "EXP",
"notifyLevelUp": "LEVEL UP!",
"notifyLevel": "Level {level}",
"notifyQuestComplete": "QUEST COMPLETE!",
"notifyPrologueComplete": "PROLOGUE COMPLETE!",
"notifyActComplete": "ACT {number} COMPLETE!",
"notifyNewSpell": "NEW SPELL!",
"notifyNewEquipment": "NEW EQUIPMENT!",
"notifyBossDefeated": "BOSS DEFEATED!",
"rechargeRollsTitle": "RECHARGE ROLLS",
"rechargeRollsFree": "Recharge 5 rolls for free?",
"rechargeRollsAd": "Watch an ad to recharge 5 rolls?",
"debugTitle": "DEBUG",
"debugCheatsTitle": "DEBUG CHEATS",
"debugToolsTitle": "DEBUG TOOLS",
"debugDeveloperTools": "DEVELOPER TOOLS",
"debugSkipTask": "SKIP TASK (L+1)",
"debugSkipTaskDesc": "Complete task instantly",
"debugSkipQuest": "SKIP QUEST (Q!)",
"debugSkipQuestDesc": "Complete quest instantly",
"debugSkipAct": "SKIP ACT (P!)",
"debugSkipActDesc": "Complete act instantly",
"debugCreateTestCharacter": "CREATE TEST CHARACTER",
"debugCreateTestCharacterDesc": "Register Level 100 character to Hall of Fame",
"debugCreateTestCharacterTitle": "CREATE TEST CHARACTER?",
"debugCreateTestCharacterMessage": "Current character will be converted to Level 100\nand registered to the Hall of Fame.\n\n⚠ Current save file will be deleted.\nThis action cannot be undone.",
"debugTurbo": "DEBUG: TURBO (20x)",
"debugIapPurchased": "IAP PURCHASED",
"debugIapPurchasedDesc": "ON: Behave as paid user (ads removed)",
"debugOfflineHours": "OFFLINE HOURS",
"debugOfflineHoursDesc": "Test return rewards (applies on restart)",
"debugTestCharacterDesc": "Modify current character to Level 100\nand register to the Hall of Fame."
}