Adventure Keeper Docs
Acessar

Internacionalização (i18n) em Módulos

1. Suporte Nativo a Múltiplos Idiomas

O Adventure Keeper possui infraestrutura multilíngue nativa (suportando Português pt-BR e Inglês en). Para garantir que suas extensões proporcionem a mesma qualidade de experiência internacional, os módulos suportam dicionários de strings desacoplados.


2. Estrutura de Diretórios de Tradução

As traduções devem ser organizadas na pasta locales/ do módulo:

meu-modulo/
├── module.json
├── schemas/
└── locales/
    ├── pt-BR.json
    └── en.json

Cada arquivo JSON contém um mapa de chaves aninhadas ou com notação de ponto:

locales/pt-BR.json

{
  "pf2e": {
    "tabs": {
      "stats": "Estatísticas PF2e"
    },
    "fields": {
      "level": "Nível",
      "strength": "Força",
      "dexterity": "Destreza",
      "hitPoints": "Pontos de Vida"
    }
  }
}

locales/en.json

{
  "pf2e": {
    "tabs": {
      "stats": "PF2e Stats"
    },
    "fields": {
      "level": "Level",
      "strength": "Strength",
      "dexterity": "Dexterity",
      "hitPoints": "Hit Points"
    }
  }
}

4. Algoritmo de Fallback Determinístico

Quando uma chave de tradução é solicitada na interface:

Idioma Selecionado pelo Usuário (ex: "en")
      ↓ Se ausente
Idioma Padrão do Módulo ("defaultLocale" no manifesto, ex: "pt-BR")
      ↓ Se ausente
Nome Bruto da Chave (ex: "pf2e.fields.level")

Essa cadeia garante que mesmo que um módulo não possua tradução para todos os idiomas, ele nunca quebrará a tela ou exibirá campos em branco.