From ea6ebf55f53785f212a4e569dcf27a9371e494fe Mon Sep 17 00:00:00 2001 From: JiWoong Sul Date: Fri, 30 Jan 2026 18:43:47 +0900 Subject: [PATCH] =?UTF-8?q?chore(l10n):=20=EC=A4=91=EA=B5=AD=EC=96=B4=20?= =?UTF-8?q?=EB=A1=9C=EC=BB=AC=EB=9D=BC=EC=9D=B4=EC=A0=9C=EC=9D=B4=EC=85=98?= =?UTF-8?q?=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 미완성 중국어 번역 파일 삭제 - supportedLocales에서 zh 제거 - 중국어 기기는 영어로 fallback --- lib/l10n/app_localizations.dart | 6 +- lib/l10n/app_localizations_zh.dart | 461 ----------------------------- lib/l10n/app_zh.arb | 149 ---------- 3 files changed, 1 insertion(+), 615 deletions(-) delete mode 100644 lib/l10n/app_localizations_zh.dart delete mode 100644 lib/l10n/app_zh.arb diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 99fc68c..958b9c3 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -8,7 +8,6 @@ import 'package:intl/intl.dart' as intl; import 'app_localizations_en.dart'; import 'app_localizations_ja.dart'; import 'app_localizations_ko.dart'; -import 'app_localizations_zh.dart'; // ignore_for_file: type=lint @@ -98,7 +97,6 @@ abstract class L10n { Locale('en'), Locale('ja'), Locale('ko'), - Locale('zh'), ]; /// Application title @@ -970,7 +968,7 @@ class _L10nDelegate extends LocalizationsDelegate { @override bool isSupported(Locale locale) => - ['en', 'ja', 'ko', 'zh'].contains(locale.languageCode); + ['en', 'ja', 'ko'].contains(locale.languageCode); @override bool shouldReload(_L10nDelegate old) => false; @@ -985,8 +983,6 @@ L10n lookupL10n(Locale locale) { return L10nJa(); case 'ko': return L10nKo(); - case 'zh': - return L10nZh(); } throw FlutterError( diff --git a/lib/l10n/app_localizations_zh.dart b/lib/l10n/app_localizations_zh.dart deleted file mode 100644 index 33b81a4..0000000 --- a/lib/l10n/app_localizations_zh.dart +++ /dev/null @@ -1,461 +0,0 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'app_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for Chinese (`zh`). -class L10nZh extends L10n { - L10nZh([String locale = 'zh']) : super(locale); - - @override - String get appTitle => 'ASCII NEVER DIE'; - - @override - String get tagNoNetwork => 'No network'; - - @override - String get tagIdleRpg => 'Idle RPG loop'; - - @override - String get tagLocalSaves => 'Local saves'; - - @override - String get newCharacter => 'New character'; - - @override - String get loadSave => 'Load save'; - - @override - String get loadGame => 'Load Game'; - - @override - String get viewBuildPlan => 'View build plan'; - - @override - String get buildRoadmap => 'Build roadmap'; - - @override - String get techStack => 'Tech stack'; - - @override - String get cancel => 'Cancel'; - - @override - String get exitGame => 'Exit Game'; - - @override - String get saveProgressQuestion => 'Save your progress before leaving?'; - - @override - String get exitWithoutSaving => 'Exit without saving'; - - @override - String get saveAndExit => 'Save and Exit'; - - @override - String progressQuestTitle(String name) { - return 'ASCII NEVER DIE - $name'; - } - - @override - String get levelUp => 'Level Up'; - - @override - String get completeQuest => 'Complete Quest'; - - @override - String get completePlot => 'Complete Plot'; - - @override - String get characterSheet => 'Character Sheet'; - - @override - String get traits => 'Traits'; - - @override - String get stats => 'Stats'; - - @override - String get experience => 'Experience'; - - @override - String get xpNeededForNextLevel => 'XP needed for next level'; - - @override - String get spellBook => '技能'; - - @override - String get noSpellsYet => '暂无技能'; - - @override - String get equipment => 'Equipment'; - - @override - String get inventory => 'Inventory'; - - @override - String get encumbrance => 'Encumbrance'; - - @override - String get combatLog => '战斗日志'; - - @override - String get plotDevelopment => 'Plot Development'; - - @override - String get quests => 'Quests'; - - @override - String get traitName => 'Name'; - - @override - String get traitRace => 'Race'; - - @override - String get traitClass => 'Class'; - - @override - String get traitLevel => 'Level'; - - @override - String get statStr => 'STR'; - - @override - String get statCon => 'CON'; - - @override - String get statDex => 'DEX'; - - @override - String get statInt => 'INT'; - - @override - String get statWis => 'WIS'; - - @override - String get statCha => 'CHA'; - - @override - String get statHpMax => 'HP Max'; - - @override - String get statMpMax => 'MP Max'; - - @override - String get equipWeapon => 'Weapon'; - - @override - String get equipShield => 'Shield'; - - @override - String get equipHelm => 'Helm'; - - @override - String get equipHauberk => 'Hauberk'; - - @override - String get equipBrassairts => 'Brassairts'; - - @override - String get equipVambraces => 'Vambraces'; - - @override - String get equipGauntlets => 'Gauntlets'; - - @override - String get equipGambeson => 'Gambeson'; - - @override - String get equipCuisses => 'Cuisses'; - - @override - String get equipGreaves => 'Greaves'; - - @override - String get equipSollerets => 'Sollerets'; - - @override - String get gold => 'Gold'; - - @override - String goldAmount(int amount) { - return 'Gold: $amount'; - } - - @override - String get prologue => 'Prologue'; - - @override - String actNumber(String number) { - return 'Act $number'; - } - - @override - String get noActiveQuests => 'No active quests'; - - @override - String questNumber(int number) { - return 'Quest #$number'; - } - - @override - String get welcomeMessage => '欢迎来到ASCII NEVER DIE!'; - - @override - String get noSavedGames => 'No saved games found.'; - - @override - String loadError(String error) { - return 'Failed to load save file: $error'; - } - - @override - String get name => 'Name'; - - @override - String get generateName => 'Generate Name'; - - @override - String get total => 'Total'; - - @override - String get unroll => '撤销'; - - @override - String get roll => 'Roll'; - - @override - String get race => 'Race'; - - @override - String get classTitle => 'Class'; - - @override - String percentComplete(int percent) { - return '$percent% complete'; - } - - @override - String get newCharacterTitle => 'ASCII NEVER DIE - New Character'; - - @override - String get soldButton => 'Sold!'; - - @override - String get endingCongratulations => '★ 恭喜通关 ★'; - - @override - String get endingGameComplete => '您已完成游戏!'; - - @override - String get endingTheHero => '英雄'; - - @override - String endingLevelFormat(int level) { - return '等级 $level'; - } - - @override - String get endingJourneyStats => '冒险记录'; - - @override - String get endingMonstersSlain => '击败的怪物'; - - @override - String get endingQuestsCompleted => '完成的任务'; - - @override - String get endingPlayTime => '游戏时间'; - - @override - String get endingFinalStats => '最终属性'; - - @override - String get endingCredits => '制作人员'; - - @override - String get endingThankYou => '感谢您的游玩!'; - - @override - String get endingLegendLivesOn => '您的传奇将永远流传...'; - - @override - String get endingHallOfFameLine1 => '您的英雄事迹'; - - @override - String get endingHallOfFameLine2 => '将被铭记于荣誉殿堂'; - - @override - String get endingHallOfFameButton => '荣誉殿堂'; - - @override - String get endingSkip => '跳过'; - - @override - String get endingTapToSkip => '点击跳过'; - - @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.'; -} diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb deleted file mode 100644 index 4194053..0000000 --- a/lib/l10n/app_zh.arb +++ /dev/null @@ -1,149 +0,0 @@ -{ - "@@locale": "zh", - - "appTitle": "ASCII NEVER DIE", - "tagNoNetwork": "No network", - "tagIdleRpg": "Idle RPG loop", - "tagLocalSaves": "Local saves", - "newCharacter": "New character", - "loadSave": "Load save", - "loadGame": "Load Game", - "viewBuildPlan": "View build plan", - "buildRoadmap": "Build roadmap", - "techStack": "Tech stack", - "cancel": "Cancel", - "exitGame": "Exit Game", - "saveProgressQuestion": "Save your progress before leaving?", - "exitWithoutSaving": "Exit without saving", - "saveAndExit": "Save and Exit", - "progressQuestTitle": "ASCII NEVER DIE - {name}", - "levelUp": "Level Up", - "completeQuest": "Complete Quest", - "completePlot": "Complete Plot", - "characterSheet": "Character Sheet", - "traits": "Traits", - "stats": "Stats", - "experience": "Experience", - "xpNeededForNextLevel": "XP needed for next level", - "spellBook": "技能", - "noSpellsYet": "暂无技能", - "equipment": "Equipment", - "inventory": "Inventory", - "encumbrance": "Encumbrance", - "combatLog": "战斗日志", - "plotDevelopment": "Plot Development", - "quests": "Quests", - "traitName": "Name", - "traitRace": "Race", - "traitClass": "Class", - "traitLevel": "Level", - "statStr": "STR", - "statCon": "CON", - "statDex": "DEX", - "statInt": "INT", - "statWis": "WIS", - "statCha": "CHA", - "statHpMax": "HP Max", - "statMpMax": "MP Max", - "equipWeapon": "Weapon", - "equipShield": "Shield", - "equipHelm": "Helm", - "equipHauberk": "Hauberk", - "equipBrassairts": "Brassairts", - "equipVambraces": "Vambraces", - "equipGauntlets": "Gauntlets", - "equipGambeson": "Gambeson", - "equipCuisses": "Cuisses", - "equipGreaves": "Greaves", - "equipSollerets": "Sollerets", - "gold": "Gold", - "goldAmount": "Gold: {amount}", - "prologue": "Prologue", - "actNumber": "Act {number}", - "noActiveQuests": "No active quests", - "questNumber": "Quest #{number}", - "welcomeMessage": "欢迎来到ASCII NEVER DIE!", - "noSavedGames": "No saved games found.", - "loadError": "Failed to load save file: {error}", - "name": "Name", - "generateName": "Generate Name", - "total": "Total", - "unroll": "撤销", - "roll": "Roll", - "race": "Race", - "classTitle": "Class", - "percentComplete": "{percent}% complete", - "newCharacterTitle": "ASCII NEVER DIE - New Character", - "soldButton": "Sold!", - - "endingCongratulations": "★ 恭喜通关 ★", - "endingGameComplete": "您已完成游戏!", - "endingTheHero": "英雄", - "endingLevelFormat": "等级 {level}", - "endingJourneyStats": "冒险记录", - "endingMonstersSlain": "击败的怪物", - "endingQuestsCompleted": "完成的任务", - "endingPlayTime": "游戏时间", - "endingFinalStats": "最终属性", - "endingCredits": "制作人员", - "endingThankYou": "感谢您的游玩!", - "endingLegendLivesOn": "您的传奇将永远流传...", - "endingHallOfFameLine1": "您的英雄事迹", - "endingHallOfFameLine2": "将被铭记于荣誉殿堂", - "endingHallOfFameButton": "荣誉殿堂", - "endingSkip": "跳过", - "endingTapToSkip": "点击跳过", - "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." -}