Skip to content

i18n: Brazilian Portuguese translates 1,812 of the status and error messages the untranslated report lists - #7341

Merged
bflatastic merged 1 commit into
storytold:mainfrom
dotCooCoo:fix/pt-br-message-rows
Nov 14, 2026
Merged

bflatastic merged 1 commit into
storytold:mainfrom
dotCooCoo:fix/pt-br-message-rows

Conversation

@dotCooCoo

Copy link
Copy Markdown
Contributor

What and why

Brazilian Portuguese is in COMPLETE_MESSAGES (crates/ui-egui/src/i18n/tests.rs), but on main at 0b29b2b1f6, 1,851 status and error messages that the untranslated report scans had no pt-br row, counting the ones it lists under "every language". With the interface in Brazilian Portuguese, those messages showed in English.

Three of the 1,812 rows are in the file and are counted by the report, but do not yet put their message into Portuguese:

  • Template::parse in crates/ui-egui/src/i18n/catalog.rs returns None for a message with two placeholders in a row, so the catalog does not load the rows for unknown parameter `{within}{key}`; {why} and {name} must be {lo}–{hi}{unit} (got {v}).
  • The row for {k} has control characters{_1} does not match the message for a multi-line File Info field. Its last placeholder is empty there (crates/engine/src/cmd/fileinfo.rs), and the last placeholder of a row never matches empty text.

How it was tested

No new test: the change adds catalog rows only. bundled_catalogs_are_consistent and the other i18n tests check every new row for TSV parsing, duplicate keys, placeholder agreement, kept parameter names, backticked values and command ids. One of them found a duplicate in a first draft: not an RTF file: it doesn't start with {\rtf already has a pt-br row, written with the catalog's \\ escape, and the second row was removed.

Untranslated report (cargo test -p vectorcraft-ui-egui --lib i18n -- --nocapture):

Focused checks on Linux. The branch is one commit on main at 0b29b2b1f6 and merges cleanly with it. It conflicts with open #7307 in docs/localization-parity.md.

  • cargo fmt --all -- --check
  • cargo clippy -p vectorcraft-ui-egui --all-targets -- -D warnings
  • cargo check --workspace --tests
  • cargo test -p vectorcraft-ui-egui --lib i18n: 110 passed, 0 failed, on the head d358baf9cc.
  • cargo xtask brands, layers (30 crates) and assets (337 files).
  • cargo xtask ci runs in this pull request's CI.

Checklist

  • cargo xtask ci passes (fmt, clippy, tests, assets, brands, layers, wasm).
  • No panics in shipped code: no unwrap(), expect(), panic!, unreachable!, todo! or
    unimplemented! outside tests, and no unchecked indexing on data from files, parameters or
    messages. Errors are returned as Result and shown to the user
    (why and how).
  • Clean-room: nothing copied from Adobe products or GPL/AGPL code (AGENTS.md).
  • Every new asset has a row in ASSETS.md.

…essages the untranslated report lists

pt-br is in COMPLETE_MESSAGES, but the untranslated report listed 1,851
status and error messages with no pt-br row, so with the interface in
Brazilian Portuguese those messages showed in English.

- pt-br.tsv gains 1,812 `@msg` rows. The translations are VectorCraft's
  own, written from the English meaning with the catalog's terms.
  Placeholders, backticked names, command ids, parameter names,
  double-quoted values and bare true, false and null stay as the English
  writes them.
- The 39 messages that open storytold#7211, storytold#7214, storytold#7116 and storytold#7330 add pt-br rows
  for are left out. bundled_catalogs_are_consistent rejects a second row
  for the same key.
- The Portuguese row of docs/localization-parity.md gives the catalog's
  counts: 9,260 rows, 3,445 of them `@msg` and 48 `@msgplural`.
@coderabbitai

coderabbitai Bot commented Nov 14, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 1 minute.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 0b29b2b and d358baf.

Files ignored due to path filters: 1

  • crates/ui-egui/src/i18n/pt-br.tsv is excluded by !**/*.tsv
Files selected for processing: 1

  • docs/localization-parity.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@bflatastic
bflatastic merged commit e69fb10 into storytold:main Nov 14, 2026
7 checks passed
@bflatastic

Copy link
Copy Markdown
Member

Merged, thanks @dotCooCoo! It passed its CI checks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants