Add pt-br as a fifth interface language beside English, Simplified
Chinese, Traditional Chinese (Taiwan) and Japanese.
`crates/ui-egui/locales/pt-br.json` and `pt-br-formats.json` carry the
messages and the format strings; the language table gains the entry
(`PtBr, "pt-br", "Português (Brasil)", "Latn", ...`), and Edit > Language
plus `app.language.portuguese` select it. Locale tags pt-BR, pt_BR.UTF-8
and pt all normalize to the same language.
Translation follows pt-BR UI conventions (Adobe terms: revelação,
balanço de branco, máscara, cópia virtual…); proper nouns and file
formats stay as written (LightCraft, ArtCraft, GitHub, DNG, TIFF, XMP).
Placeholders, format specs and punctuation match the English source; the
English plural suffix is consumed with `{:.0}` where Portuguese does not
need it.
Tests: every_language_has_a_catalog_covering_the_source,
catalogs_agree_on_placeholders_and_report_gaps, locale_tags_normalize
and the painted-window test now cover pt-br. Docs: localization.md, a
new localization-pt-br.md and the parity rows.
Co-Authored-By: DeepSeek V4 Flash (opencode) <[email protected]>
2.2 KiB
LightCraft em português do Brasil
O LightCraft pode ser exibido em inglês, chinês simplificado, chinês tradicional (Taiwan), japonês e
português do Brasil. A preferência de idioma é gravada em language no ui.json.
- Troque em Editar → Idioma ou em Configurações → Geral → Idioma. A escolha é mantida nas próximas inicializações.
- Traduzimos menus, edição de fotos, máscaras, recorte, configurações, importação, exportação e as principais mensagens de progresso.
- Menus, telas e o texto com valores variáveis usam as fontes Inter (regular e semibold). Texto em chinês e japonês exibido nos nomes de idioma (por exemplo, 日本語) continua dependendo do repositório de fontes storytold/craft-fonts.
- A tradução fica na camada de apresentação. IDs de comandos, nomes de arquivos de fotos e metadados digitados pelo usuário nunca são alterados.
- Erros técnicos, informações complementares e notas de versão não traduzidos aparecem em inglês.
- A tradução para chinês está em
localization-zh-hans.md; para japonês, emlocalization-ja.md. Como adicionar outro idioma está emlocalization.md.
Manutenção da tradução
Os textos fixos ficam em crates/ui-egui/locales/pt-br.json e os textos com valores variáveis em
crates/ui-egui/locales/pt-br-formats.json. O inglês é usado como chave.
Toda tradução de formato é verificada por format! do Rust no build. Referencie os valores por nome
({n}) ou por posição ({0}, {1}) e use as mesmas especificações de formato do inglês
({:.1}, {d:+}, {:.0}%). Quando o plural inglês ("s" / "") não for necessário em português,
consuma o argumento correspondente com {:.0} — um texto com precisão 0 não imprime nada.
Aparência, fontes, troca de idioma, persistência da preferência e estabilidade dos IDs de comando são
verificadas por cargo test -p lightcraft-ui-egui i18n::tests (a checagem de glifos só roda com
CRAFT_FONTS_DIR). Para visualizar o idioma, renderize sem interface gráfica:
LIGHTCRAFT_LANGUAGE=pt-br lightcraft-cli snapshot --demo --script tour.jsonl -o out.png --size 1600x1000