Repository navigation
feat(l10n): add Portuguese (Brazil) and French (Canada) - #8
Merged
Merged
Conversation
…I runner postgres.exe exits at once when the account has administrative rights, which is the case on the GitHub Windows runner, so Start-TestServers failed with "The server stopped right after starting". pg_ctl starts the server with those rights removed. Start/timeout errors now also print the last lines of the server log, since Stop-TestServers deletes it in CI. Claude-Session: https://claude.ai/code/session_01M3Pqt8Ubw3fJwBV3ztYKQV
The gate reads the first coverage.cobertura.xml under coverage/raw, and the folders are random GUIDs. Rotula.Data.Packs.Tests also produced a report, with Rotula.Core almost uncovered, so the gate failed whenever that one sorted first (0.54% on PR #4). Drop its coverlet.collector, the same as Rotula.Data.Integration already does. Claude-Session: https://claude.ai/code/session_01M3Pqt8Ubw3fJwBV3ztYKQV
Every key of Strings.en.resx, with the same placeholders, access keys and technical tokens (ZPL commands, GS1 AIs, extensions, product name).
Every key of Strings.en.resx, following OQLF usage: courriel, and a non-breaking space before : ; ! ? and inside guillemets. Placeholders, access keys and technical tokens are kept as in English.
Loc.SupportedLanguages now lists en, es, pt-BR and fr-CA by full culture name, and LanguageCode returns that name. On first run any Portuguese desktop gets pt-BR, any French one fr-CA, Spanish es and the rest English; saved en/es settings keep their meaning. View > Language lists each language in its own name. The parity tests now check every Strings.*.resx against English (keys, placeholders, access keys, no empty value, French typography), and the key-coverage tests run over Loc.SupportedLanguages instead of en/es.
README (en/es), CONTRIBUTING, the PR checklist, the changelog and the design decisions now say every new string needs en, es, pt-BR and fr-CA. The installer offers Brazilian Portuguese and French.
pt-BR and fr-CA for the 137 keys the printer status check, the print station and the managed settings / update check added.
The Language policy reads every shipped language case-insensitively and hands on the canonical culture name; the ADMX enum, both ADML files and docs/deployment.md list all four. The managed lock covers the new menu entries, and the tests of the earlier branches that looped over en/es now use Loc.SupportedLanguages.
…utral status test Archivo and Ayuda both took Alt+A, so Alt+A never reached Help. Help is now Ay_uda (Alt+U). The printer-status text test now accepts the French « » quotes.
glenntosco
changed the base branch from
claude/project-thread-5e0lug-deployment
to
main
October 24, 2026 14:31
glenntosco
added a commit
that referenced
this pull request
Oct 27, 2026
feat(l10n): add Portuguese (Brazil) and French (Canada)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Glenn · project thread
What changed and why
Assessment item 11. Stacks on #7 (deployment) → #6 → #5. Merge in order.
Adds Brazilian Portuguese and Canadian French next to English/Spanish, covering every string on the stack (2,058 keys, including the printer-status, print-station and policy/update strings from #5–#7).
Strings.pt-BR.resxandStrings.fr-CA.resx. Placeholders, access keys and technical tokens (ZPL commands, GS1 AIs, extensions, "Rotula") kept. French follows OQLF usage ("courriel", "NIP", no-break space before: ; ! ?and inside « »).Loc.SupportedLanguages=en, es, pt-BR, fr-CAas full culture names;LanguageCodereturns the culture name. Per-key English fallback and culture-based formatting unchanged.en/es/autokeep their meaning.Languagepolicy (reader, ADMX/ADML, docs/deployment.md) acceptspt-BRandfr-CA, matched case-insensitively to the canonical name.SatelliteResourceLanguagesupdated.How it was tested
Strings.*.resxagainst English (same keys, placeholders, access keys, no empty values, French typography), and the resx files on disk must matchLoc.SupportedLanguages. Every hard-coded{"en","es"}loop in the tests now goes throughSupportedLanguages, so later features need all four languages automatically.Loctests: OS mapping, explicit choice, saved settings, per-language resources, decimal comma, live switching. View-model, settings and policy tests for the new languages.Checklist
CHANGELOG.mdupdatedNotes
Strings.en).Print.Error.ConnectionRefused,Print.Field.Port,Start.Subtitle); the pt/fr versions leave it out. Worth fixing in en/es separately.Generated by Claude Code