feat(l10n): 게임 데이터 한국어 번역 시스템 추가

- game_translations_ko.dart: 한국어 번역 데이터
  - 종족/직업/몬스터/무기/갑옷/방패/주문 번역
  - 아이템 속성/접미사 번역
  - 칭호/특수 아이템 번역
- game_data_l10n.dart: 번역 헬퍼 클래스
  - getRaceName(), getKlassName(), getMonsterName() 등
  - BuildContext 기반 로케일 감지
This commit is contained in:
JiWoong Sul
2025-12-11 18:25:57 +09:00
parent e6f3bb70bb
commit 43924d6cfd
2 changed files with 729 additions and 0 deletions

View File

@@ -0,0 +1,172 @@
import 'package:askiineverdie/data/game_translations_ko.dart';
import 'package:flutter/widgets.dart';
/// 게임 데이터 번역을 위한 헬퍼 클래스
/// 현재 로케일에 따라 게임 데이터의 번역을 제공합니다.
class GameDataL10n {
GameDataL10n._();
/// 현재 로케일이 한국어인지 확인
static bool _isKorean(BuildContext context) {
final locale = Localizations.localeOf(context);
return locale.languageCode == 'ko';
}
/// 종족 이름 번역
static String getRaceName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return raceTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 직업 이름 번역
static String getKlassName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return klassTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 주문 이름 번역
static String getSpellName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return spellTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 몬스터 이름 번역
static String getMonsterName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return monsterTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 무기 이름 번역
static String getWeaponName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return weaponTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 갑옷 이름 번역
static String getArmorName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return armorTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 방패 이름 번역
static String getShieldName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return shieldTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 칭호 번역
static String getTitleName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return titleTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 인상적인 칭호 번역
static String getImpressiveTitleName(
BuildContext context,
String englishName,
) {
if (_isKorean(context)) {
return impressiveTitleTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 아이템 속성 번역
static String getItemAttribName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return itemAttribTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 아이템 접미사 번역
static String getItemOfName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return itemOfsTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 공격 속성 번역
static String getOffenseAttribName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return offenseAttribTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 나쁜 공격 속성 번역
static String getOffenseBadName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return offenseBadTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 방어 속성 번역
static String getDefenseAttribName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return defenseAttribTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 나쁜 방어 속성 번역
static String getDefenseBadName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return defenseBadTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 특수 아이템 번역
static String getSpecialName(BuildContext context, String englishName) {
if (_isKorean(context)) {
return specialTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 일반 게임 텍스트 번역 (context 없이 로케일 직접 지정)
static String getRaceNameByLocale(String englishName, String languageCode) {
if (languageCode == 'ko') {
return raceTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 직업 이름 번역 (context 없이)
static String getKlassNameByLocale(String englishName, String languageCode) {
if (languageCode == 'ko') {
return klassTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
/// 몬스터 이름 번역 (context 없이)
static String getMonsterNameByLocale(
String englishName,
String languageCode,
) {
if (languageCode == 'ko') {
return monsterTranslationsKo[englishName] ?? englishName;
}
return englishName;
}
}