feat(l10n): 퀘스트 및 시네마틱 텍스트 번역 적용

- game_text_l10n.dart에 게임 데이터 번역 함수 추가
  - translateMonster, translateRace, translateKlass
  - translateTitle, translateImpressiveTitle
  - translateBoringItem, translateInterestingItem
- pq_logic.dart monsterTask에서 몬스터 이름 번역
- completeQuest에서 퀘스트 아이템/몬스터 번역
- impressiveGuy, namedMonster에서 NPC 이름 번역
- interplotCinematic에서 시네마틱 아이템 번역
This commit is contained in:
JiWoong Sul
2025-12-11 19:42:25 +09:00
parent b16ae6c2b8
commit 13198f9f1f
2 changed files with 82 additions and 14 deletions

View File

@@ -1,6 +1,8 @@
// 게임 텍스트 로컬라이제이션 (BuildContext 없이 사용)
// progress_service.dart, pq_logic.dart 등에서 사용
import 'package:askiineverdie/data/game_translations_ko.dart';
/// 현재 게임 로케일 설정 (전역)
String _currentLocale = 'en';
@@ -282,3 +284,52 @@ String namedMonsterFormat(String generatedName, String monsterType) =>
isKoreanLocale
? '$monsterType $generatedName'
: '$generatedName the $monsterType';
// ============================================================================
// 게임 데이터 번역 함수 (BuildContext 없이 사용)
// ============================================================================
/// 몬스터 이름 번역
String translateMonster(String englishName) =>
isKoreanLocale ? (monsterTranslationsKo[englishName] ?? englishName) : englishName;
/// 종족 이름 번역
String translateRace(String englishName) =>
isKoreanLocale ? (raceTranslationsKo[englishName] ?? englishName) : englishName;
/// 직업 이름 번역
String translateKlass(String englishName) =>
isKoreanLocale ? (klassTranslationsKo[englishName] ?? englishName) : englishName;
/// 칭호 이름 번역
String translateTitle(String englishName) =>
isKoreanLocale ? (titleTranslationsKo[englishName] ?? englishName) : englishName;
/// 인상적인 칭호 번역 (impressiveTitles용)
String translateImpressiveTitle(String englishName) =>
isKoreanLocale ? (impressiveTitleTranslationsKo[englishName] ?? englishName) : englishName;
/// 특수 아이템 이름 번역
String translateSpecial(String englishName) =>
isKoreanLocale ? (specialTranslationsKo[englishName] ?? englishName) : englishName;
/// 아이템 속성 이름 번역
String translateItemAttrib(String englishName) =>
isKoreanLocale ? (itemAttribTranslationsKo[englishName] ?? englishName) : englishName;
/// 아이템 "~의" 접미사 번역
String translateItemOf(String englishName) =>
isKoreanLocale ? (itemOfsTranslationsKo[englishName] ?? englishName) : englishName;
/// 단순 아이템 번역
String translateBoringItem(String englishName) =>
isKoreanLocale ? (boringItemTranslationsKo[englishName] ?? englishName) : englishName;
/// interestingItem 번역 (attrib + special 조합)
/// 예: "Golden Iterator" → "황금 이터레이터"
String translateInterestingItem(String attrib, String special) {
if (!isKoreanLocale) return '$attrib $special';
final translatedAttrib = itemAttribTranslationsKo[attrib] ?? attrib;
final translatedSpecial = specialTranslationsKo[special] ?? special;
return '$translatedAttrib $translatedSpecial';
}