feat(l10n): 게임 데이터 한국어 번역 시스템 추가
- game_translations_ko.dart: 한국어 번역 데이터 - 종족/직업/몬스터/무기/갑옷/방패/주문 번역 - 아이템 속성/접미사 번역 - 칭호/특수 아이템 번역 - game_data_l10n.dart: 번역 헬퍼 클래스 - getRaceName(), getKlassName(), getMonsterName() 등 - BuildContext 기반 로케일 감지
This commit is contained in:
172
lib/src/core/l10n/game_data_l10n.dart
Normal file
172
lib/src/core/l10n/game_data_l10n.dart
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user