refactor: 타입 안전성 개선 및 하드코딩 문자열 l10n 적용

- return_rewards_dialog: _getRarityColor(dynamic) → ItemRarity? 타입 명시
- stats_section: 하드코딩된 Undo/Rolls 문자열을 l10n으로 교체
- game_text_l10n: uiUndoAndRolls, uiRollsOnly 추가 (한/영/일)
- skill_data: 주석 스킬 개수 70→68 수정
This commit is contained in:
JiWoong Sul
2026-03-19 14:56:58 +09:00
parent 2e66562ea2
commit 7fcae4893e
3 changed files with 19 additions and 11 deletions

View File

@@ -1021,6 +1021,13 @@ String uiRollHistory(int count) =>
_l('$count roll(s) in history', '리롤 기록: $count회', 'リロール履歴: $count回');
String get uiEnterName =>
_l('Please enter a name.', '이름을 입력해주세요.', '名前を入力してください。');
String uiUndoAndRolls(int undo, int rolls) => _l(
'Undo: $undo | Rolls: $rolls/5',
'되돌리기: $undo | 굴리기: $rolls/5',
'やり直し: $undo | ロール: $rolls/5',
);
String uiRollsOnly(int rolls) =>
_l('Rolls: $rolls/5', '굴리기: $rolls/5', 'ロール: $rolls/5');
String get uiTestMode => _l('Test Mode', '테스트 모드', 'テストモード');
String get uiTestModeDesc =>
_l('Use mobile layout on web', '웹에서 모바일 레이아웃 사용', 'Webでモバイルレイアウトを使用');

View File

@@ -4,6 +4,7 @@ import 'package:asciineverdie/data/game_text_l10n.dart' as l10n;
import 'package:asciineverdie/data/potion_data.dart';
import 'package:asciineverdie/src/core/engine/iap_service.dart';
import 'package:asciineverdie/src/core/engine/return_rewards_service.dart';
import 'package:asciineverdie/src/core/model/item_stats.dart';
import 'package:asciineverdie/src/core/model/treasure_chest.dart';
import 'package:asciineverdie/src/shared/retro_colors.dart';
@@ -449,15 +450,14 @@ class _ReturnRewardsDialogState extends State<ReturnRewardsDialog>
);
}
Color _getRarityColor(dynamic rarity) {
if (rarity == null) return Colors.white;
return switch (rarity.toString()) {
'ItemRarity.common' => Colors.grey,
'ItemRarity.uncommon' => Colors.green,
'ItemRarity.rare' => Colors.blue,
'ItemRarity.epic' => Colors.purple,
'ItemRarity.legendary' => Colors.orange,
_ => Colors.white,
Color _getRarityColor(ItemRarity? rarity) {
return switch (rarity) {
null => Colors.white,
ItemRarity.common => Colors.grey,
ItemRarity.uncommon => Colors.green,
ItemRarity.rare => Colors.blue,
ItemRarity.epic => Colors.purple,
ItemRarity.legendary => Colors.orange,
};
}

View File

@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:asciineverdie/data/game_text_l10n.dart' as game_l10n;
import 'package:asciineverdie/l10n/app_localizations.dart';
import 'package:asciineverdie/src/core/engine/iap_service.dart';
import 'package:asciineverdie/src/shared/retro_colors.dart';
@@ -141,8 +142,8 @@ class StatsSection extends StatelessWidget {
child: Center(
child: Text(
canUndo
? 'Undo: $availableUndos | Rolls: $rollsRemaining/5'
: 'Rolls: $rollsRemaining/5',
? game_l10n.uiUndoAndRolls(availableUndos, rollsRemaining)
: game_l10n.uiRollsOnly(rollsRemaining),
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 11,