chore(l10n): 중국어 로컬라이제이션 제거
- 미완성 중국어 번역 파일 삭제 - supportedLocales에서 zh 제거 - 중국어 기기는 영어로 fallback
This commit is contained in:
@@ -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<L10n> {
|
||||
|
||||
@override
|
||||
bool isSupported(Locale locale) =>
|
||||
<String>['en', 'ja', 'ko', 'zh'].contains(locale.languageCode);
|
||||
<String>['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(
|
||||
|
||||
@@ -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.';
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
Reference in New Issue
Block a user