사용자 화면 문구·표본 데이터 · 퀘스트 참여 흐름 · HOME 진입 구획 · 미니맵 · 공통 확인 창 배치 수정

This commit is contained in:
Sn-Kinos
2026-10-05 00:44:39 +09:00
parent c8d29d032b
commit 8a0297eb92
66 changed files with 1812 additions and 959 deletions
+17 -2
View File
@@ -172,11 +172,11 @@ void main() {
test('원격 문자열은 인자 값 안의 자리표시자를 다시 치환하지 않는다', () {
final t = RemoteL10nDelegate(const {
'linkTitle': '{name} 연동',
'settingsLinkNotReady': '{name}: {items}',
'myShareText': '{nickname}: {level}',
});
return t.load(const Locale('ko')).then((l10n) {
expect(l10n.linkTitle('{name}'), '{name} 연동');
expect(l10n.settingsLinkNotReady('{items}', 'A'), '{items}: A');
expect(l10n.myShareText('{level}', 'A', '1'), '{level}: A');
});
});
@@ -226,4 +226,19 @@ void main() {
);
});
});
// 10/4 실기기 — 「발주사」 · 「09-10 회차에 연결」 · 오탈자 「맴버」가 사용자 화면에 떴다.
test('사용자 문구에 내부 표현 · 일정 · 오탈자가 없다', () {
const banned = ['발주사', '発注元', 'client key', 'MOCK', '회차에 연결', '09-10', '2026-', 'Q-QC-', '맴버', '구현 확인물'];
for (final file in Directory('lib/l10n').listSync().whereType<File>()) {
if (!file.path.endsWith('.arb')) continue;
final arb = jsonDecode(file.readAsStringSync()) as Map<String, dynamic>;
for (final MapEntry(:key, :value) in arb.entries) {
if (key.startsWith('@') || value is! String) continue;
for (final word in banned) {
expect(value.contains(word), isFalse, reason: '${file.path} $key: $value');
}
}
}
});
}