feat(l10n): 캐릭터 생성 화면 하드코딩 텍스트 l10n 적용

- newCharacterTitle, soldButton 키 추가 (app_en.arb, app_ko.arb)
- new_character_screen.dart 하드코딩 텍스트를 L10n 함수로 변경
- 관련 테스트 업데이트 (widget_test.dart, new_character_screen_test.dart)

변경 내역:
- "Progress Quest - New Character" → L10n.newCharacterTitle
- "Sold!" → L10n.soldButton
This commit is contained in:
JiWoong Sul
2025-12-11 18:52:24 +09:00
parent 0216eb1261
commit fac7c7e6fc
5 changed files with 16 additions and 8 deletions

View File

@@ -242,5 +242,11 @@
"placeholders": { "placeholders": {
"percent": { "type": "int" } "percent": { "type": "int" }
} }
} },
"newCharacterTitle": "ASCII-Nara - New Character",
"@newCharacterTitle": { "description": "New character screen title" },
"soldButton": "Sold!",
"@soldButton": { "description": "Confirm character creation button" }
} }

View File

@@ -71,5 +71,7 @@
"roll": "굴리기", "roll": "굴리기",
"race": "종족", "race": "종족",
"classTitle": "직업", "classTitle": "직업",
"percentComplete": "{percent}% 완료" "percentComplete": "{percent}% 완료",
"newCharacterTitle": "아스키나라 - 새 캐릭터",
"soldButton": "확인!"
} }

View File

@@ -200,7 +200,7 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: const Text('Progress Quest - New Character'), title: Text(L10n.of(context).newCharacterTitle),
centerTitle: true, centerTitle: true,
), ),
body: SingleChildScrollView( body: SingleChildScrollView(
@@ -231,7 +231,7 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
FilledButton.icon( FilledButton.icon(
onPressed: _onSold, onPressed: _onSold,
icon: const Icon(Icons.check), icon: const Icon(Icons.check),
label: const Text('Sold!'), label: Text(L10n.of(context).soldButton),
style: FilledButton.styleFrom( style: FilledButton.styleFrom(
padding: const EdgeInsets.symmetric(vertical: 16), padding: const EdgeInsets.symmetric(vertical: 16),
), ),

View File

@@ -19,8 +19,8 @@ void main() {
_buildTestApp(NewCharacterScreen(onCharacterCreated: (_) {})), _buildTestApp(NewCharacterScreen(onCharacterCreated: (_) {})),
); );
// 화면 타이틀 확인 // 화면 타이틀 확인 (l10n 적용됨)
expect(find.text('Progress Quest - New Character'), findsOneWidget); expect(find.text('ASCII-Nara - New Character'), findsOneWidget);
// 종족 섹션 확인 // 종족 섹션 확인
expect(find.text('Race'), findsOneWidget); expect(find.text('Race'), findsOneWidget);

View File

@@ -14,8 +14,8 @@ void main() {
await tester.tap(find.text('New character')); await tester.tap(find.text('New character'));
await tester.pumpAndSettle(); await tester.pumpAndSettle();
// NewCharacterScreen으로 이동했는지 확인 // NewCharacterScreen으로 이동했는지 확인 (l10n 적용됨)
expect(find.text('Progress Quest - New Character'), findsOneWidget); expect(find.text('ASCII-Nara - New Character'), findsOneWidget);
expect(find.text('Race'), findsOneWidget); expect(find.text('Race'), findsOneWidget);
expect(find.text('Class'), findsOneWidget); expect(find.text('Class'), findsOneWidget);
expect(find.text('Sold!'), findsOneWidget); expect(find.text('Sold!'), findsOneWidget);