From 17aa7f8f91bcbc6035e5c45bdcc5b0d06636740b Mon Sep 17 00:00:00 2001 From: JiWoong Sul Date: Thu, 11 Dec 2025 18:26:57 +0900 Subject: [PATCH] =?UTF-8?q?feat(ui):=20GameDataL10n=20=EB=B2=88=EC=97=AD?= =?UTF-8?q?=20UI=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit new_character_screen.dart: - 종족 목록에 GameDataL10n.getRaceName() 적용 - 직업 목록에 GameDataL10n.getKlassName() 적용 game_play_screen.dart: - 캐릭터 정보의 종족/직업 번역 적용 - 주문 목록에 GameDataL10n.getSpellName() 적용 --- lib/src/features/game/game_play_screen.dart | 8 +++++--- .../new_character/new_character_screen.dart | 13 +++++++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/src/features/game/game_play_screen.dart b/lib/src/features/game/game_play_screen.dart index 007aad4..f942792 100644 --- a/lib/src/features/game/game_play_screen.dart +++ b/lib/src/features/game/game_play_screen.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; import 'package:askiineverdie/l10n/app_localizations.dart'; import 'package:askiineverdie/src/core/animation/ascii_animation_data.dart'; import 'package:askiineverdie/src/core/animation/ascii_animation_type.dart'; +import 'package:askiineverdie/src/core/l10n/game_data_l10n.dart'; import 'package:askiineverdie/src/core/model/game_state.dart'; import 'package:askiineverdie/src/core/storage/theme_preferences.dart'; import 'package:askiineverdie/src/core/util/pq_logic.dart' as pq_logic; @@ -409,8 +410,8 @@ class _GamePlayScreenState extends State final l10n = L10n.of(context); final traits = [ (l10n.traitName, state.traits.name), - (l10n.traitRace, state.traits.race), - (l10n.traitClass, state.traits.klass), + (l10n.traitRace, GameDataL10n.getRaceName(context, state.traits.race)), + (l10n.traitClass, GameDataL10n.getKlassName(context, state.traits.klass)), (l10n.traitLevel, '${state.traits.level}'), ]; @@ -487,11 +488,12 @@ class _GamePlayScreenState extends State padding: const EdgeInsets.symmetric(horizontal: 8), itemBuilder: (context, index) { final spell = state.spellBook.spells[index]; + final spellName = GameDataL10n.getSpellName(context, spell.name); return Row( children: [ Expanded( child: Text( - spell.name, + spellName, style: const TextStyle(fontSize: 11), overflow: TextOverflow.ellipsis, ), diff --git a/lib/src/features/new_character/new_character_screen.dart b/lib/src/features/new_character/new_character_screen.dart index d85ebdf..9c78ec9 100644 --- a/lib/src/features/new_character/new_character_screen.dart +++ b/lib/src/features/new_character/new_character_screen.dart @@ -3,6 +3,7 @@ import 'dart:math' as math; import 'package:flutter/material.dart'; import 'package:askiineverdie/l10n/app_localizations.dart'; +import 'package:askiineverdie/src/core/l10n/game_data_l10n.dart'; import 'package:askiineverdie/src/core/model/game_state.dart'; import 'package:askiineverdie/src/core/model/pq_config.dart'; import 'package:askiineverdie/src/core/util/deterministic_random.dart'; @@ -400,6 +401,10 @@ class _NewCharacterScreenState extends State { itemCount: _races.length, itemBuilder: (context, index) { final isSelected = index == _selectedRaceIndex; + final raceName = GameDataL10n.getRaceName( + context, + _races[index], + ); return ListTile( leading: Icon( isSelected @@ -410,7 +415,7 @@ class _NewCharacterScreenState extends State { : null, ), title: Text( - _races[index], + raceName, style: TextStyle( fontWeight: isSelected ? FontWeight.bold @@ -445,6 +450,10 @@ class _NewCharacterScreenState extends State { itemCount: _klasses.length, itemBuilder: (context, index) { final isSelected = index == _selectedKlassIndex; + final klassName = GameDataL10n.getKlassName( + context, + _klasses[index], + ); return ListTile( leading: Icon( isSelected @@ -455,7 +464,7 @@ class _NewCharacterScreenState extends State { : null, ), title: Text( - _klasses[index], + klassName, style: TextStyle( fontWeight: isSelected ? FontWeight.bold