feat(i18n): add redesign strings and translate Escuchar rename to 11 locales
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
import 'arb_test_helpers.dart';
|
||||
|
||||
/// WU18 task 18.1 / 18.2 -- ARB key-parity guard.
|
||||
///
|
||||
/// `l10n.yaml` sets `template-arb-file: app_es.arb`, so Spanish is the l10n
|
||||
/// template: any key missing from a locale's ARB silently falls back to the
|
||||
/// Spanish value at runtime (not English, which is the more common
|
||||
/// assumption). This test guarantees all 13 locales carry the same key set,
|
||||
/// so nothing can silently render in Spanish because a locale was never
|
||||
/// given that key.
|
||||
void main() {
|
||||
test('all 13 ARB files declare an identical key set', () {
|
||||
final arbs = {
|
||||
for (final locale in supportedArbLocales) locale: readArb(locale),
|
||||
};
|
||||
final templateKeys = realKeys(arbs['es']!);
|
||||
|
||||
for (final locale in supportedArbLocales) {
|
||||
if (locale == 'es') continue;
|
||||
final keys = realKeys(arbs[locale]!);
|
||||
final missing = templateKeys.difference(keys);
|
||||
final extra = keys.difference(templateKeys);
|
||||
|
||||
expect(
|
||||
missing,
|
||||
isEmpty,
|
||||
reason:
|
||||
'app_$locale.arb is missing ${missing.length} key(s) present in '
|
||||
'the es template (these silently fall back to Spanish at '
|
||||
'runtime): $missing',
|
||||
);
|
||||
expect(
|
||||
extra,
|
||||
isEmpty,
|
||||
reason:
|
||||
'app_$locale.arb has ${extra.length} key(s) not present in the '
|
||||
'es template: $extra',
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test('navHome exists as a key in all 13 locales', () {
|
||||
for (final locale in supportedArbLocales) {
|
||||
final arb = readArb(locale);
|
||||
expect(
|
||||
realKeys(arb).contains('navHome'),
|
||||
isTrue,
|
||||
reason: 'app_$locale.arb is missing the navHome key',
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user