feat(i18n): complete Portuguese, add Brazilian Portuguese (pt_BR)
Some checks are pending
ci / analyze (push) Waiting to run
ci / test-commons-core (push) Waiting to run
ci / test-app-seeds (push) Waiting to run

Fill the ~74 UI strings pt.i18n.json was missing (saved searches, label
scanning, Plantaré, lot history), then add pt_BR as a proper Brazilian
variant rather than a copy of European Portuguese: tu/teu/tua -> você/
seu/sua with matching verb conjugation, partilhar -> compartilhar, and
Guardar -> Salvar for UI actions (seed-saving keeps "guardar", the
correct term in both variants). Wires AppLocale.ptBr into the language
picker and regenerates slang output.
This commit is contained in:
vjrj 2026-07-20 23:11:01 +02:00
parent 071be44851
commit d80f6d50fa
19 changed files with 5231 additions and 1920 deletions

View file

@ -3,10 +3,10 @@
/// Source: lib/i18n
/// To regenerate, run: `dart run slang`
///
/// Locales: 7
/// Strings: 3566 (509 per locale)
/// Locales: 8
/// Strings: 4287 (535 per locale)
///
/// Built on 2026-07-18 at 10:28 UTC
/// Built on 2026-07-20 at 21:06 UTC
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import
@ -24,6 +24,7 @@ import 'strings_es.g.dart' as l_es;
import 'strings_fr.g.dart' as l_fr;
import 'strings_ja.g.dart' as l_ja;
import 'strings_pt.g.dart' as l_pt;
import 'strings_pt_BR.g.dart' as l_pt_BR;
part 'strings_en.g.dart';
/// Supported locales.
@ -39,7 +40,8 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
es(languageCode: 'es'),
fr(languageCode: 'fr'),
ja(languageCode: 'ja'),
pt(languageCode: 'pt');
pt(languageCode: 'pt'),
ptBr(languageCode: 'pt', countryCode: 'BR');
const AppLocale({
required this.languageCode,
@ -113,6 +115,12 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
case AppLocale.ptBr:
return l_pt_BR.TranslationsPtBr(
overrides: overrides,
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
}
}