feat(l10n): 게임 텍스트 다국어 지원 확장

- game_text_l10n.dart: 스탯/UI 텍스트 추가 (+61 라인)
- 한국어/일본어 번역 업데이트
- game_data_l10n.dart: 텍스트 접근자 추가
- equipment_stats_panel: l10n 적용 및 레이아웃 개선
- active_buff_panel, potion_inventory_panel: 코드 정리
- new_character_screen: 코드 정리
- progress_service: 마이너 개선
This commit is contained in:
JiWoong Sul
2025-12-23 15:51:56 +09:00
parent 99f5b74802
commit 1da6fa7a2b
10 changed files with 137 additions and 26 deletions

View File

@@ -1000,11 +1000,13 @@ class ProgressService {
final damage = dot.damagePerTick * ticksTriggered;
dotDamageThisTick += damage;
// DOT 데미지 이벤트 생성
// DOT 데미지 이벤트 생성 (skillId → name 변환)
final dotSkillName =
SkillData.getSkillById(dot.skillId)?.name ?? dot.skillId;
newEvents.add(
CombatEvent.dotTick(
timestamp: timestamp,
skillName: dot.skillId,
skillName: dotSkillName,
damage: damage,
targetName: monsterStats.name,
),

View File

@@ -459,11 +459,22 @@ class GameDataL10n {
}
/// 각 단어의 첫 글자를 대문자로 (Title Case)
/// 하이픈으로 연결된 단어도 처리 (예: "off-by-one" → "Off-by-One")
static String _toTitleCase(String s) {
return s
.split(' ')
.map((word) {
if (word.isEmpty) return word;
// 하이픈 포함 단어 처리
if (word.contains('-')) {
return word
.split('-')
.map((part) {
if (part.isEmpty) return part;
return part[0].toUpperCase() + part.substring(1);
})
.join('-');
}
return word[0].toUpperCase() + word.substring(1);
})
.join(' ');