fix(i18n): VictoryOverlay 번역 및 개선
- 일본어/중국어 번역 수정 - game_text_l10n 번역 데이터 정리 - VictoryOverlay 레이아웃 개선 - GameSessionController 상태 관리 개선
This commit is contained in:
@@ -1211,9 +1211,9 @@ String get uiHallOfFame {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String get frontDescription {
|
String get frontDescription {
|
||||||
if (isKoreanLocale) return 'Flutter로 재구축된 오프라인 Progress Quest (PQ 6.4)';
|
if (isKoreanLocale) return '레트로 감성의 오프라인 싱글플레이어 RPG';
|
||||||
if (isJapaneseLocale) return 'Flutterで再構築されたオフラインProgress Quest (PQ 6.4)';
|
if (isJapaneseLocale) return 'レトロ感のあるオフラインシングルプレイヤーRPG';
|
||||||
return 'Offline Progress Quest (PQ 6.4) rebuilt with Flutter.';
|
return 'A retro-style offline single-player RPG';
|
||||||
}
|
}
|
||||||
|
|
||||||
String get frontTodayFocus {
|
String get frontTodayFocus {
|
||||||
@@ -1913,7 +1913,7 @@ String get uiAbout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String get uiAboutDescription {
|
String get uiAboutDescription {
|
||||||
if (isKoreanLocale) return 'Progress Quest 6.4를 Flutter로 재구현한 오프라인 싱글플레이어 RPG입니다.';
|
if (isKoreanLocale) return 'ASCII 아트와 레트로 감성의 오프라인 싱글플레이어 RPG입니다.';
|
||||||
if (isJapaneseLocale) return 'Progress Quest 6.4をFlutterで再実装したオフラインシングルプレイヤーRPGです。';
|
if (isJapaneseLocale) return 'ASCIIアートとレトロ感のあるオフラインシングルプレイヤーRPGです。';
|
||||||
return 'An offline single-player RPG reimplementation of Progress Quest 6.4 in Flutter.';
|
return 'An offline single-player RPG with ASCII art and retro vibes.';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
"saveProgressQuestion": "Save your progress before leaving?",
|
"saveProgressQuestion": "Save your progress before leaving?",
|
||||||
"exitWithoutSaving": "Exit without saving",
|
"exitWithoutSaving": "Exit without saving",
|
||||||
"saveAndExit": "Save and Exit",
|
"saveAndExit": "Save and Exit",
|
||||||
"progressQuestTitle": "Progress Quest - {name}",
|
"progressQuestTitle": "ASCII NEVER DIE - {name}",
|
||||||
"levelUp": "Level Up",
|
"levelUp": "Level Up",
|
||||||
"completeQuest": "Complete Quest",
|
"completeQuest": "Complete Quest",
|
||||||
"completePlot": "Complete Plot",
|
"completePlot": "Complete Plot",
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
"actNumber": "Act {number}",
|
"actNumber": "Act {number}",
|
||||||
"noActiveQuests": "No active quests",
|
"noActiveQuests": "No active quests",
|
||||||
"questNumber": "Quest #{number}",
|
"questNumber": "Quest #{number}",
|
||||||
"welcomeMessage": "Welcome to Progress Quest!",
|
"welcomeMessage": "ASCII NEVER DIEへようこそ!",
|
||||||
"noSavedGames": "No saved games found.",
|
"noSavedGames": "No saved games found.",
|
||||||
"loadError": "Failed to load save file: {error}",
|
"loadError": "Failed to load save file: {error}",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class L10nJa extends L10n {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String progressQuestTitle(String name) {
|
String progressQuestTitle(String name) {
|
||||||
return 'Progress Quest - $name';
|
return 'ASCII NEVER DIE - $name';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -200,7 +200,7 @@ class L10nJa extends L10n {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get welcomeMessage => 'Welcome to Progress Quest!';
|
String get welcomeMessage => 'ASCII NEVER DIEへようこそ!';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get noSavedGames => 'No saved games found.';
|
String get noSavedGames => 'No saved games found.';
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class L10nZh extends L10n {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String progressQuestTitle(String name) {
|
String progressQuestTitle(String name) {
|
||||||
return 'Progress Quest - $name';
|
return 'ASCII NEVER DIE - $name';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -200,7 +200,7 @@ class L10nZh extends L10n {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get welcomeMessage => 'Welcome to Progress Quest!';
|
String get welcomeMessage => '欢迎来到ASCII NEVER DIE!';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get noSavedGames => 'No saved games found.';
|
String get noSavedGames => 'No saved games found.';
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
"saveProgressQuestion": "Save your progress before leaving?",
|
"saveProgressQuestion": "Save your progress before leaving?",
|
||||||
"exitWithoutSaving": "Exit without saving",
|
"exitWithoutSaving": "Exit without saving",
|
||||||
"saveAndExit": "Save and Exit",
|
"saveAndExit": "Save and Exit",
|
||||||
"progressQuestTitle": "Progress Quest - {name}",
|
"progressQuestTitle": "ASCII NEVER DIE - {name}",
|
||||||
"levelUp": "Level Up",
|
"levelUp": "Level Up",
|
||||||
"completeQuest": "Complete Quest",
|
"completeQuest": "Complete Quest",
|
||||||
"completePlot": "Complete Plot",
|
"completePlot": "Complete Plot",
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
"actNumber": "Act {number}",
|
"actNumber": "Act {number}",
|
||||||
"noActiveQuests": "No active quests",
|
"noActiveQuests": "No active quests",
|
||||||
"questNumber": "Quest #{number}",
|
"questNumber": "Quest #{number}",
|
||||||
"welcomeMessage": "Welcome to Progress Quest!",
|
"welcomeMessage": "欢迎来到ASCII NEVER DIE!",
|
||||||
"noSavedGames": "No saved games found.",
|
"noSavedGames": "No saved games found.",
|
||||||
"loadError": "Failed to load save file: {error}",
|
"loadError": "Failed to load save file: {error}",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
|
|||||||
@@ -316,6 +316,12 @@ class GameSessionController extends ChangeNotifier {
|
|||||||
// 통계 기록
|
// 통계 기록
|
||||||
await _statisticsStorage.recordGameComplete();
|
await _statisticsStorage.recordGameComplete();
|
||||||
debugPrint('[HallOfFame] Registration complete');
|
debugPrint('[HallOfFame] Registration complete');
|
||||||
|
|
||||||
|
// 클리어된 세이브 파일 삭제 (중복 등록 방지)
|
||||||
|
if (success) {
|
||||||
|
final deleteResult = await saveManager.deleteSave();
|
||||||
|
debugPrint('[HallOfFame] Save file deleted: ${deleteResult.success}');
|
||||||
|
}
|
||||||
} catch (e, st) {
|
} catch (e, st) {
|
||||||
debugPrint('[HallOfFame] ERROR: $e');
|
debugPrint('[HallOfFame] ERROR: $e');
|
||||||
debugPrint('[HallOfFame] StackTrace: $st');
|
debugPrint('[HallOfFame] StackTrace: $st');
|
||||||
|
|||||||
@@ -450,16 +450,16 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
|||||||
|
|
||||||
Widget _buildTrophyAsciiArt(Color gold) {
|
Widget _buildTrophyAsciiArt(Color gold) {
|
||||||
const trophy = '''
|
const trophy = '''
|
||||||
___________
|
___________
|
||||||
'._==_==_=_.'
|
'._==_==_=_.'
|
||||||
.-\\: /-.
|
.-\\: /-.
|
||||||
| (|:. |) |
|
| (|:. |) |
|
||||||
'-|:. |-'
|
'-|:. |-'
|
||||||
\\::. /
|
\\::. /
|
||||||
'::. .'
|
'::. .'
|
||||||
) (
|
) (
|
||||||
_.' '._
|
_.' '._
|
||||||
'-------' ''';
|
'-------' ''';
|
||||||
|
|
||||||
return Text(
|
return Text(
|
||||||
trophy,
|
trophy,
|
||||||
@@ -476,51 +476,35 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
|||||||
Widget _buildCredits(BuildContext context) {
|
Widget _buildCredits(BuildContext context) {
|
||||||
final textPrimary = RetroColors.textPrimaryOf(context);
|
final textPrimary = RetroColors.textPrimaryOf(context);
|
||||||
final textMuted = RetroColors.textMutedOf(context);
|
final textMuted = RetroColors.textMutedOf(context);
|
||||||
|
final gold = RetroColors.goldOf(context);
|
||||||
|
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'Based on',
|
'ASCII NEVER DIE',
|
||||||
style: TextStyle(
|
|
||||||
fontFamily: 'JetBrainsMono',
|
|
||||||
fontSize: 10,
|
|
||||||
color: textMuted,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 4),
|
|
||||||
Text(
|
|
||||||
'Progress Quest',
|
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontFamily: 'PressStart2P',
|
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,
|
color: textPrimary,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 4),
|
const SizedBox(height: 8),
|
||||||
Text(
|
Text(
|
||||||
'by Eric Fredricksen',
|
'Your legend lives on...',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontFamily: 'JetBrainsMono',
|
fontFamily: 'JetBrainsMono',
|
||||||
fontSize: 10,
|
fontSize: 10,
|
||||||
color: textMuted,
|
color: textMuted,
|
||||||
),
|
fontStyle: FontStyle.italic,
|
||||||
),
|
|
||||||
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,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user