feat(i18n): translate the five systems users actually see
CI / Build & test (Node 20) (push) Canceled after 0s
CI / Build & test (Node 24) (push) Canceled after 0s
CI / Build & test (push) Canceled after 0s
CodeQL / Analyze (javascript-typescript) (push) Canceled after 0s
Security / Secret scan (gitleaks) (push) Canceled after 0s
Security / Dependency scan (OSV-Scanner) (push) Canceled after 0s
Security / IaC/config scan (Trivy) (push) Canceled after 0s
Security / License compliance scan (Trivy) (push) Canceled after 0s
OpenSSF Scorecard / Scorecard analysis (push) Canceled after 0s
CI / Build & test (Node 20) (push) Canceled after 0s
CI / Build & test (Node 24) (push) Canceled after 0s
CI / Build & test (push) Canceled after 0s
CodeQL / Analyze (javascript-typescript) (push) Canceled after 0s
Security / Secret scan (gitleaks) (push) Canceled after 0s
Security / Dependency scan (OSV-Scanner) (push) Canceled after 0s
Security / IaC/config scan (Trivy) (push) Canceled after 0s
Security / License compliance scan (Trivy) (push) Canceled after 0s
OpenSSF Scorecard / Scorecard analysis (push) Canceled after 0s
Ordered by what the group hits, not by string count.
- Chat system messages ("X added Y to the group") and their sidebar
preview twin. These are content, not chrome, so they sat in English in
the middle of conversations.
- Login, register and the invite landing page — the first screen anyone
invited to the instance sees.
- Voice — controls, connection info, the mobile join sheet, settings tab.
- Mobile screens.
- Settings navigation across space, user and instance, plus Discovery and
join requests.
Three call sites build strings outside a component and so read the locale
directly rather than through the hook: the sidebar preview formatter, the
connection-info track labels, and MobileShell's screen map — which holds
plain functions that are *called*, not rendered, where a hook would run
under whichever component invoked the map. Each says so at the definition;
all three re-render often enough that a language switch shows through
promptly.
Adds a test for a mistake made three times in this series: a file with an
exported component plus a private sub-component, where only the exported one
got the hook. tsc catches it, but only after a full build and without naming
the component. The test names it, and also flags the inverse — a hook placed
below an early return, which tsc accepts and React breaks at runtime (this
project shipped that once, as error #310). Verified by mutation: removing a
hook makes it fail and print the component.
Dictionary is at 856 keys, en and pt-BR at exact parity.
Verified: web build (tsc + vite), 492 web tests.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -110,6 +110,12 @@ fixas por `t('chave')`. O que faltar cai para o inglês sozinho.
|
||||
- Configurações do servidor → Cargos (incluindo a tabela de permissões)
|
||||
- Configurações da categoria (renomear, privacidade, exceções, excluir)
|
||||
- Configurações da instância → Geral (nome, descoberta, busca de GIFs)
|
||||
- Mensagens de sistema do chat e a prévia delas na barra lateral
|
||||
- Login, registro e a página de convite
|
||||
- Voz: controles, informações de conexão, folha de entrada no celular, aba Voz
|
||||
- Telas do celular (`Mobile*.tsx`)
|
||||
- Navegação das configurações (servidor, usuário e instância) + Descoberta e
|
||||
pedidos de entrada
|
||||
|
||||
Os rótulos de permissão viraram um conjunto único (`perm.*`), usado pelo painel
|
||||
de cargos e pelos editores de exceção de canal e de categoria — antes havia
|
||||
@@ -118,8 +124,9 @@ duas cópias da mesma lista.
|
||||
### Fila sugerida de tradução
|
||||
|
||||
Configurações → Instância: registro, federação, transmissão, armazenamento e
|
||||
usuários · chrome do `SpaceSettings` e do `UserSettings` (abas) ·
|
||||
`ConnectedInstances` · `UserProfileModal` · telas móveis (`Mobile*.tsx`)
|
||||
usuários (os cinco painéis grandes, só o dono vê) · `ConnectedInstances` ·
|
||||
`UserProfileModal` · `MainContent` e `ChannelSidebar` · mensagens de erro
|
||||
vindas de stores e hooks (`instanceStore`, `useLiveKit`, `transferStore`)
|
||||
|
||||
## Correções pendentes
|
||||
|
||||
|
||||
Reference in New Issue
Block a user