Traduzir

Traduza mensagens next-intl, depois verifique cada linha

Mensagens next-intl são JSON aninhados com sintaxe ICU: {count, plural, =0 {…} one {# item} other {# items}}. Japonês tem uma forma plural, russo três, e um ramo copiado como está fica errado. KAERIS traduz messages/en.json ramo por ramo e mantém os namespaces.

KAERIS traduziu esta página e verificou cada linha traduzindo-a de volta. Um falante nativo ainda não revisou. Original em inglês

Ramos ICU seguem o idioma alvo

Japonês não tem forma singular, então one se funde em other. {name} e # permanecem.

Antesmessages/en.json
{
  "HomePage": {
    "title": "Welcome, {name}!",
    "cartItems": "{count, plural, =0 {Your cart is empty} one {# item} other {# items}}"
  }
}
Depoismessages/ja.json
{
  "HomePage": {
    "title": "ようこそ、{name}さん!",
    "cartItems": "{count, plural, =0 {カートは空です} other {#点の商品}}"
  }
}

O que o KAERIS faz com isso

Perguntas

select também funciona?

Sim. plural, select e selectordinal mantêm sua sintaxe; apenas as palavras dentro dos ramos são traduzidas.

Um arquivo por localidade?

Sim: messages/de.json, messages/ja.json e assim por diante, o layout esperado pelo next-intl.

É gratuito?

Sim, sem conta: 10.000 caracteres por arquivo e até 8 idiomas por execução. Uma chave API gratuita eleva o limite para 50.000 caracteres. A licença vitalícia custa $79 uma vez, usando sua própria chave OpenRouter; planos mensais começam em $19. Preços

Como integrar isso ao repositório?

kaeris init --preset next-intl escreve as configurações para messages/, e kaeris translate roda sem flags. Docs