refactor(content): 게임 제목 변경 및 부적절한 내용 수정

- 게임 제목을 'ASCII NEVER DIE'로 통일 (모든 ARB 파일, app.dart)
- 미성년 관련 몬스터 수식어를 RPG에 적합하게 변경:
  - foetal → primordial (원시)
  - baby → immature (미숙한)
  - preadolescent → growing (성장 중인)
  - teenage → young (어린)
  - underage → inexperienced (경험 부족)
- 테스트 파일 업데이트 (새 제목에 맞춤)
This commit is contained in:
JiWoong Sul
2025-12-12 15:50:59 +09:00
parent 8314aea578
commit e30177e788
17 changed files with 43 additions and 43 deletions

View File

@@ -178,12 +178,12 @@ String modifierSick(String s) => isKoreanLocale ? '병든 $s' : 'sick $s';
String modifierUndernourished(String s) => String modifierUndernourished(String s) =>
isKoreanLocale ? '영양실조 $s' : 'undernourished $s'; isKoreanLocale ? '영양실조 $s' : 'undernourished $s';
String modifierFoetal(String s) => isKoreanLocale ? '태아 $s' : 'foetal $s'; String modifierFoetal(String s) => isKoreanLocale ? '원시 $s' : 'primordial $s';
String modifierBaby(String s) => isKoreanLocale ? '아기 $s' : 'baby $s'; String modifierBaby(String s) => isKoreanLocale ? '미숙한 $s' : 'immature $s';
String modifierPreadolescent(String s) => String modifierPreadolescent(String s) =>
isKoreanLocale ? '사춘기 전 $s' : 'preadolescent $s'; isKoreanLocale ? '성장 중인 $s' : 'growing $s';
String modifierTeenage(String s) => isKoreanLocale ? '십대 $s' : 'teenage $s'; String modifierTeenage(String s) => isKoreanLocale ? '어린 $s' : 'young $s';
String modifierUnderage(String s) => isKoreanLocale ? '미성년 $s' : 'underage $s'; String modifierUnderage(String s) => isKoreanLocale ? '경험 부족 $s' : 'inexperienced $s';
String modifierGreater(String s) => isKoreanLocale ? '상위 $s' : 'greater $s'; String modifierGreater(String s) => isKoreanLocale ? '상위 $s' : 'greater $s';
String modifierMassive(String s) => isKoreanLocale ? '거대한 $s' : 'massive $s'; String modifierMassive(String s) => isKoreanLocale ? '거대한 $s' : 'massive $s';

View File

@@ -1,4 +1,4 @@
// 아스키나라(ASCII-Nara) 한국어 번역 데이터 // ASCII NEVER DIE 한국어 번역 데이터
// 게임 데이터의 한국어 번역을 제공합니다. // 게임 데이터의 한국어 번역을 제공합니다.
/// 종족 이름 한국어 번역 /// 종족 이름 한국어 번역

View File

@@ -1,4 +1,4 @@
// 아스키나라(ASCII-Nara) 세계관 게임 데이터 // ASCII NEVER DIE 세계관 게임 데이터
// 코드의 신이 창조한 디지털 판타지 세계 // 코드의 신이 창조한 디지털 판타지 세계
const Map<String, List<String>> pqConfigData = { const Map<String, List<String>> pqConfigData = {

View File

@@ -1,7 +1,7 @@
{ {
"@@locale": "en", "@@locale": "en",
"appTitle": "ASCII-Nara", "appTitle": "ASCII NEVER DIE",
"@appTitle": { "description": "Application title" }, "@appTitle": { "description": "Application title" },
"tagNoNetwork": "No network", "tagNoNetwork": "No network",
@@ -46,7 +46,7 @@
"saveAndExit": "Save and Exit", "saveAndExit": "Save and Exit",
"@saveAndExit": { "description": "Save and exit button" }, "@saveAndExit": { "description": "Save and exit button" },
"progressQuestTitle": "ASCII-Nara - {name}", "progressQuestTitle": "ASCII NEVER DIE - {name}",
"@progressQuestTitle": { "@progressQuestTitle": {
"description": "Game screen title with character name", "description": "Game screen title with character name",
"placeholders": { "placeholders": {
@@ -201,7 +201,7 @@
} }
}, },
"welcomeMessage": "Welcome to ASCII-Nara!", "welcomeMessage": "Welcome to ASCII NEVER DIE!",
"@welcomeMessage": { "description": "Welcome message in task progress panel" }, "@welcomeMessage": { "description": "Welcome message in task progress panel" },
"noSavedGames": "No saved games found.", "noSavedGames": "No saved games found.",
@@ -244,7 +244,7 @@
} }
}, },
"newCharacterTitle": "ASCII-Nara - New Character", "newCharacterTitle": "ASCII NEVER DIE - New Character",
"@newCharacterTitle": { "description": "New character screen title" }, "@newCharacterTitle": { "description": "New character screen title" },
"soldButton": "Sold!", "soldButton": "Sold!",

View File

@@ -1,7 +1,7 @@
{ {
"@@locale": "ja", "@@locale": "ja",
"appTitle": "Ascii Never Die", "appTitle": "ASCII NEVER DIE",
"tagNoNetwork": "No network", "tagNoNetwork": "No network",
"tagIdleRpg": "Idle RPG loop", "tagIdleRpg": "Idle RPG loop",
"tagLocalSaves": "Local saves", "tagLocalSaves": "Local saves",
@@ -72,6 +72,6 @@
"race": "Race", "race": "Race",
"classTitle": "Class", "classTitle": "Class",
"percentComplete": "{percent}% complete", "percentComplete": "{percent}% complete",
"newCharacterTitle": "ASCII-Nara - New Character", "newCharacterTitle": "ASCII NEVER DIE - New Character",
"soldButton": "Sold!" "soldButton": "Sold!"
} }

View File

@@ -1,7 +1,7 @@
{ {
"@@locale": "ko", "@@locale": "ko",
"appTitle": "아스키나라", "appTitle": "아스키 네버 다이",
"tagNoNetwork": "오프라인", "tagNoNetwork": "오프라인",
"tagIdleRpg": "방치형 RPG", "tagIdleRpg": "방치형 RPG",
"tagLocalSaves": "로컬 저장", "tagLocalSaves": "로컬 저장",
@@ -16,7 +16,7 @@
"saveProgressQuestion": "나가기 전에 저장하시겠습니까?", "saveProgressQuestion": "나가기 전에 저장하시겠습니까?",
"exitWithoutSaving": "저장하지 않고 종료", "exitWithoutSaving": "저장하지 않고 종료",
"saveAndExit": "저장 후 종료", "saveAndExit": "저장 후 종료",
"progressQuestTitle": "아스키나라 - {name}", "progressQuestTitle": "아스키 네버 다이 - {name}",
"levelUp": "레벨 업", "levelUp": "레벨 업",
"completeQuest": "퀘스트 완료", "completeQuest": "퀘스트 완료",
"completePlot": "플롯 완료", "completePlot": "플롯 완료",
@@ -61,7 +61,7 @@
"actNumber": "{number}막", "actNumber": "{number}막",
"noActiveQuests": "진행 중인 퀘스트 없음", "noActiveQuests": "진행 중인 퀘스트 없음",
"questNumber": "퀘스트 #{number}", "questNumber": "퀘스트 #{number}",
"welcomeMessage": "아스키나라에 오신 것을 환영합니다!", "welcomeMessage": "아스키 네버 다이에 오신 것을 환영합니다!",
"noSavedGames": "저장된 게임이 없습니다.", "noSavedGames": "저장된 게임이 없습니다.",
"loadError": "저장 파일 로드 실패: {error}", "loadError": "저장 파일 로드 실패: {error}",
"name": "이름", "name": "이름",
@@ -72,6 +72,6 @@
"race": "종족", "race": "종족",
"classTitle": "직업", "classTitle": "직업",
"percentComplete": "{percent}% 완료", "percentComplete": "{percent}% 완료",
"newCharacterTitle": "아스키나라 - 새 캐릭터", "newCharacterTitle": "아스키 네버 다이 - 새 캐릭터",
"soldButton": "확인!" "soldButton": "확인!"
} }

View File

@@ -104,7 +104,7 @@ abstract class L10n {
/// Application title /// Application title
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'ASCII-Nara'** /// **'ASCII NEVER DIE'**
String get appTitle; String get appTitle;
/// Tag indicating offline mode /// Tag indicating offline mode
@@ -194,7 +194,7 @@ abstract class L10n {
/// Game screen title with character name /// Game screen title with character name
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'ASCII-Nara - {name}'** /// **'ASCII NEVER DIE - {name}'**
String progressQuestTitle(String name); String progressQuestTitle(String name);
/// Level up tooltip /// Level up tooltip
@@ -464,7 +464,7 @@ abstract class L10n {
/// Welcome message in task progress panel /// Welcome message in task progress panel
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'Welcome to ASCII-Nara!'** /// **'Welcome to ASCII NEVER DIE!'**
String get welcomeMessage; String get welcomeMessage;
/// No saved games message /// No saved games message
@@ -530,7 +530,7 @@ abstract class L10n {
/// New character screen title /// New character screen title
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'ASCII-Nara - New Character'** /// **'ASCII NEVER DIE - New Character'**
String get newCharacterTitle; String get newCharacterTitle;
/// Confirm character creation button /// Confirm character creation button

View File

@@ -9,7 +9,7 @@ class L10nEn extends L10n {
L10nEn([String locale = 'en']) : super(locale); L10nEn([String locale = 'en']) : super(locale);
@override @override
String get appTitle => 'ASCII-Nara'; String get appTitle => 'ASCII NEVER DIE';
@override @override
String get tagNoNetwork => 'No network'; String get tagNoNetwork => 'No network';
@@ -55,7 +55,7 @@ class L10nEn extends L10n {
@override @override
String progressQuestTitle(String name) { String progressQuestTitle(String name) {
return 'ASCII-Nara - $name'; return 'ASCII NEVER DIE - $name';
} }
@override @override
@@ -197,7 +197,7 @@ class L10nEn extends L10n {
} }
@override @override
String get welcomeMessage => 'Welcome to ASCII-Nara!'; String get welcomeMessage => 'Welcome to ASCII NEVER DIE!';
@override @override
String get noSavedGames => 'No saved games found.'; String get noSavedGames => 'No saved games found.';
@@ -234,7 +234,7 @@ class L10nEn extends L10n {
} }
@override @override
String get newCharacterTitle => 'ASCII-Nara - New Character'; String get newCharacterTitle => 'ASCII NEVER DIE - New Character';
@override @override
String get soldButton => 'Sold!'; String get soldButton => 'Sold!';

View File

@@ -9,7 +9,7 @@ class L10nJa extends L10n {
L10nJa([String locale = 'ja']) : super(locale); L10nJa([String locale = 'ja']) : super(locale);
@override @override
String get appTitle => 'Ascii Never Die'; String get appTitle => 'ASCII NEVER DIE';
@override @override
String get tagNoNetwork => 'No network'; String get tagNoNetwork => 'No network';
@@ -234,7 +234,7 @@ class L10nJa extends L10n {
} }
@override @override
String get newCharacterTitle => 'ASCII-Nara - New Character'; String get newCharacterTitle => 'ASCII NEVER DIE - New Character';
@override @override
String get soldButton => 'Sold!'; String get soldButton => 'Sold!';

View File

@@ -9,7 +9,7 @@ class L10nKo extends L10n {
L10nKo([String locale = 'ko']) : super(locale); L10nKo([String locale = 'ko']) : super(locale);
@override @override
String get appTitle => '아스키나라'; String get appTitle => '아스키 네버 다이';
@override @override
String get tagNoNetwork => '오프라인'; String get tagNoNetwork => '오프라인';
@@ -55,7 +55,7 @@ class L10nKo extends L10n {
@override @override
String progressQuestTitle(String name) { String progressQuestTitle(String name) {
return '아스키나라 - $name'; return '아스키 네버 다이 - $name';
} }
@override @override
@@ -197,7 +197,7 @@ class L10nKo extends L10n {
} }
@override @override
String get welcomeMessage => '아스키나라에 오신 것을 환영합니다!'; String get welcomeMessage => '아스키 네버 다이에 오신 것을 환영합니다!';
@override @override
String get noSavedGames => '저장된 게임이 없습니다.'; String get noSavedGames => '저장된 게임이 없습니다.';
@@ -234,7 +234,7 @@ class L10nKo extends L10n {
} }
@override @override
String get newCharacterTitle => '아스키나라 - 새 캐릭터'; String get newCharacterTitle => '아스키 네버 다이 - 새 캐릭터';
@override @override
String get soldButton => '확인!'; String get soldButton => '확인!';

View File

@@ -9,7 +9,7 @@ class L10nZh extends L10n {
L10nZh([String locale = 'zh']) : super(locale); L10nZh([String locale = 'zh']) : super(locale);
@override @override
String get appTitle => 'Ascii Never Die'; String get appTitle => 'ASCII NEVER DIE';
@override @override
String get tagNoNetwork => 'No network'; String get tagNoNetwork => 'No network';
@@ -234,7 +234,7 @@ class L10nZh extends L10n {
} }
@override @override
String get newCharacterTitle => 'ASCII-Nara - New Character'; String get newCharacterTitle => 'ASCII NEVER DIE - New Character';
@override @override
String get soldButton => 'Sold!'; String get soldButton => 'Sold!';

View File

@@ -1,7 +1,7 @@
{ {
"@@locale": "zh", "@@locale": "zh",
"appTitle": "Ascii Never Die", "appTitle": "ASCII NEVER DIE",
"tagNoNetwork": "No network", "tagNoNetwork": "No network",
"tagIdleRpg": "Idle RPG loop", "tagIdleRpg": "Idle RPG loop",
"tagLocalSaves": "Local saves", "tagLocalSaves": "Local saves",
@@ -72,6 +72,6 @@
"race": "Race", "race": "Race",
"classTitle": "Class", "classTitle": "Class",
"percentComplete": "{percent}% complete", "percentComplete": "{percent}% complete",
"newCharacterTitle": "ASCII-Nara - New Character", "newCharacterTitle": "ASCII NEVER DIE - New Character",
"soldButton": "Sold!" "soldButton": "Sold!"
} }

View File

@@ -51,7 +51,7 @@ class _AskiiNeverDieAppState extends State<AskiiNeverDieApp> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MaterialApp( return MaterialApp(
title: 'Ascii Never Die', title: 'ASCII NEVER DIE',
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
localizationsDelegates: L10n.localizationsDelegates, localizationsDelegates: L10n.localizationsDelegates,
supportedLocales: L10n.supportedLocales, supportedLocales: L10n.supportedLocales,

View File

@@ -38,7 +38,7 @@ class ProgressService {
/// 새 게임 초기화 (원본 GoButtonClick, Main.pas:741-767) /// 새 게임 초기화 (원본 GoButtonClick, Main.pas:741-767)
/// Prologue 태스크들을 큐에 추가하고 첫 태스크 시작 /// Prologue 태스크들을 큐에 추가하고 첫 태스크 시작
GameState initializeNewGame(GameState state) { GameState initializeNewGame(GameState state) {
// 초기 큐 설정 - 아스키나라(ASCII-Nara) 세계관 프롤로그 (l10n 지원) // 초기 큐 설정 - ASCII NEVER DIE 세계관 프롤로그 (l10n 지원)
final prologueTexts = l10n.prologueTexts; final prologueTexts = l10n.prologueTexts;
final initialQueue = <QueueEntry>[ final initialQueue = <QueueEntry>[
QueueEntry( QueueEntry(

View File

@@ -98,8 +98,8 @@ void main() {
_buildTestApp(GamePlayScreen(controller: controller)), _buildTestApp(GamePlayScreen(controller: controller)),
); );
// AppBar 타이틀 확인 (L10n 사용) - 아스키나라 세계관 // AppBar 타이틀 확인 (L10n 사용) - ASCII NEVER DIE
expect(find.textContaining('ASCII-Nara'), findsOneWidget); expect(find.textContaining('ASCII NEVER DIE'), findsOneWidget);
// 3패널 헤더 확인 // 3패널 헤더 확인
expect(find.text('Character Sheet'), findsOneWidget); expect(find.text('Character Sheet'), findsOneWidget);

View File

@@ -20,7 +20,7 @@ void main() {
); );
// 화면 타이틀 확인 (l10n 적용됨) // 화면 타이틀 확인 (l10n 적용됨)
expect(find.text('ASCII-Nara - New Character'), findsOneWidget); expect(find.text('ASCII NEVER DIE - New Character'), findsOneWidget);
// 종족 섹션 확인 // 종족 섹션 확인
expect(find.text('Race'), findsOneWidget); expect(find.text('Race'), findsOneWidget);

View File

@@ -7,15 +7,15 @@ void main() {
) async { ) async {
await tester.pumpWidget(const AskiiNeverDieApp()); await tester.pumpWidget(const AskiiNeverDieApp());
// 프런트 화면이 렌더링되었는지 확인 (아스키나라 세계관) // 프런트 화면이 렌더링되었는지 확인
expect(find.text('ASCII-Nara'), findsOneWidget); expect(find.text('ASCII NEVER DIE'), findsOneWidget);
// "New character" 버튼 탭 // "New character" 버튼 탭
await tester.tap(find.text('New character')); await tester.tap(find.text('New character'));
await tester.pumpAndSettle(); await tester.pumpAndSettle();
// NewCharacterScreen으로 이동했는지 확인 (l10n 적용됨) // NewCharacterScreen으로 이동했는지 확인 (l10n 적용됨)
expect(find.text('ASCII-Nara - New Character'), findsOneWidget); expect(find.text('ASCII NEVER DIE - New Character'), findsOneWidget);
expect(find.text('Race'), findsOneWidget); expect(find.text('Race'), findsOneWidget);
expect(find.text('Class'), findsOneWidget); expect(find.text('Class'), findsOneWidget);
expect(find.text('Sold!'), findsOneWidget); expect(find.text('Sold!'), findsOneWidget);