fix(i18n): VictoryOverlay 번역 및 개선
- 일본어/중국어 번역 수정 - game_text_l10n 번역 데이터 정리 - VictoryOverlay 레이아웃 개선 - GameSessionController 상태 관리 개선
This commit is contained in:
@@ -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.';
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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.';
|
||||
|
||||
@@ -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.';
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user