fix(i18n): VictoryOverlay 번역 및 개선

- 일본어/중국어 번역 수정
- game_text_l10n 번역 데이터 정리
- VictoryOverlay 레이아웃 개선
- GameSessionController 상태 관리 개선
This commit is contained in:
JiWoong Sul
2026-01-01 03:29:48 +09:00
parent a6d3c1e42f
commit c9f0e35914
7 changed files with 45 additions and 55 deletions

View File

@@ -1211,9 +1211,9 @@ String get uiHallOfFame {
}
String get frontDescription {
if (isKoreanLocale) return 'Flutter로 재구축된 오프라인 Progress Quest (PQ 6.4)';
if (isJapaneseLocale) return 'Flutterで再構築されたオフラインProgress Quest (PQ 6.4)';
return 'Offline Progress Quest (PQ 6.4) rebuilt with Flutter.';
if (isKoreanLocale) return '레트로 감성의 오프라인 싱글플레이어 RPG';
if (isJapaneseLocale) return 'レトロ感のあるオフラインシングルプレイヤーRPG';
return 'A retro-style offline single-player RPG';
}
String get frontTodayFocus {
@@ -1913,7 +1913,7 @@ String get uiAbout {
}
String get uiAboutDescription {
if (isKoreanLocale) return 'Progress Quest 6.4를 Flutter로 재구현한 오프라인 싱글플레이어 RPG입니다.';
if (isJapaneseLocale) return 'Progress Quest 6.4をFlutterで再実装したオフラインシングルプレイヤーRPGです。';
return 'An offline single-player RPG reimplementation of Progress Quest 6.4 in Flutter.';
if (isKoreanLocale) return 'ASCII 아트와 레트로 감성의 오프라인 싱글플레이어 RPG입니다.';
if (isJapaneseLocale) return 'ASCIIアートとレトロ感のあるオフラインシングルプレイヤーRPGです。';
return 'An offline single-player RPG with ASCII art and retro vibes.';
}

View File

@@ -16,7 +16,7 @@
"saveProgressQuestion": "Save your progress before leaving?",
"exitWithoutSaving": "Exit without saving",
"saveAndExit": "Save and Exit",
"progressQuestTitle": "Progress Quest - {name}",
"progressQuestTitle": "ASCII NEVER DIE - {name}",
"levelUp": "Level Up",
"completeQuest": "Complete Quest",
"completePlot": "Complete Plot",
@@ -62,7 +62,7 @@
"actNumber": "Act {number}",
"noActiveQuests": "No active quests",
"questNumber": "Quest #{number}",
"welcomeMessage": "Welcome to Progress Quest!",
"welcomeMessage": "ASCII NEVER DIEへようこそ",
"noSavedGames": "No saved games found.",
"loadError": "Failed to load save file: {error}",
"name": "Name",

View File

@@ -55,7 +55,7 @@ class L10nJa extends L10n {
@override
String progressQuestTitle(String name) {
return 'Progress Quest - $name';
return 'ASCII NEVER DIE - $name';
}
@override
@@ -200,7 +200,7 @@ class L10nJa extends L10n {
}
@override
String get welcomeMessage => 'Welcome to Progress Quest!';
String get welcomeMessage => 'ASCII NEVER DIEへようこそ';
@override
String get noSavedGames => 'No saved games found.';

View File

@@ -55,7 +55,7 @@ class L10nZh extends L10n {
@override
String progressQuestTitle(String name) {
return 'Progress Quest - $name';
return 'ASCII NEVER DIE - $name';
}
@override
@@ -200,7 +200,7 @@ class L10nZh extends L10n {
}
@override
String get welcomeMessage => 'Welcome to Progress Quest!';
String get welcomeMessage => '欢迎来到ASCII NEVER DIE';
@override
String get noSavedGames => 'No saved games found.';

View File

@@ -16,7 +16,7 @@
"saveProgressQuestion": "Save your progress before leaving?",
"exitWithoutSaving": "Exit without saving",
"saveAndExit": "Save and Exit",
"progressQuestTitle": "Progress Quest - {name}",
"progressQuestTitle": "ASCII NEVER DIE - {name}",
"levelUp": "Level Up",
"completeQuest": "Complete Quest",
"completePlot": "Complete Plot",
@@ -62,7 +62,7 @@
"actNumber": "Act {number}",
"noActiveQuests": "No active quests",
"questNumber": "Quest #{number}",
"welcomeMessage": "Welcome to Progress Quest!",
"welcomeMessage": "欢迎来到ASCII NEVER DIE",
"noSavedGames": "No saved games found.",
"loadError": "Failed to load save file: {error}",
"name": "Name",

View File

@@ -316,6 +316,12 @@ class GameSessionController extends ChangeNotifier {
// 통계 기록
await _statisticsStorage.recordGameComplete();
debugPrint('[HallOfFame] Registration complete');
// 클리어된 세이브 파일 삭제 (중복 등록 방지)
if (success) {
final deleteResult = await saveManager.deleteSave();
debugPrint('[HallOfFame] Save file deleted: ${deleteResult.success}');
}
} catch (e, st) {
debugPrint('[HallOfFame] ERROR: $e');
debugPrint('[HallOfFame] StackTrace: $st');

View File

@@ -450,16 +450,16 @@ class _VictoryOverlayState extends State<VictoryOverlay>
Widget _buildTrophyAsciiArt(Color gold) {
const trophy = '''
___________
'._==_==_=_.'
.-\\: /-.
| (|:. |) |
'-|:. |-'
\\::. /
'::. .'
) (
_.' '._
'-------' ''';
___________
'._==_==_=_.'
.-\\: /-.
| (|:. |) |
'-|:. |-'
\\::. /
'::. .'
) (
_.' '._
'-------' ''';
return Text(
trophy,
@@ -476,51 +476,35 @@ class _VictoryOverlayState extends State<VictoryOverlay>
Widget _buildCredits(BuildContext context) {
final textPrimary = RetroColors.textPrimaryOf(context);
final textMuted = RetroColors.textMutedOf(context);
final gold = RetroColors.goldOf(context);
return Column(
children: [
Text(
'Based on',
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 10,
color: textMuted,
),
),
const SizedBox(height: 4),
Text(
'Progress Quest',
'ASCII NEVER DIE',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 10,
fontSize: 12,
color: gold,
),
),
const SizedBox(height: 16),
Text(
'Thank you for playing!',
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 12,
color: textPrimary,
),
),
const SizedBox(height: 4),
const SizedBox(height: 8),
Text(
'by Eric Fredricksen',
'Your legend lives on...',
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 10,
color: textMuted,
),
),
const SizedBox(height: 24),
Text(
'Flutter Port',
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 10,
color: textMuted,
),
),
const SizedBox(height: 4),
Text(
'ASCII Never Die',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 10,
color: textPrimary,
fontStyle: FontStyle.italic,
),
),
],