
AstrologerAI: an AI astrology app localized into 52 languages
How the AstrologerAI app translated its entire experience into 52 languages with LocalePack — 6.3M tokens for $58.73 — to reach a worldwide audience in their own language.
Carregue o seu messages.json de origem, escolha os idiomas de destino, pague uma vez e transfira um ZIP _locales pronto a publicar.
Três passos simples para localizar a sua browser extension. As traduções são executadas após o pagamento — colocamos os trabalhos em fila e geramos o ZIP em minutos.
Largue o seu ficheiro messages.json de origem. Nós analisamo-lo instantaneamente e validamos o formato da browser extension.
Escolha entre 52 idiomas. Veja preços transparentes com base no tamanho do seu ficheiro antes de pagar.
Pague uma vez via Stripe. Geramos todos os ficheiros _locales/{lang}/messages.json e agrupamo-los num ZIP.
Veja exatamente quanto vai pagar antes de carregar. O orçamento final é calculado após o carregamento com base no comprimento das strings e nos idiomas selecionados.
Largue aqui o messages.json
ou clique para procurar
messages.json input. Max 500KB.
3 de 55 idiomas selecionados
Preço final calculado após o carregamento do ficheiro na página de checkout
Pagamento único • Sem subscrição
Desenvolvido especificamente para o formato de locale de browser extension. Não é uma ferramenta de tradução genérica.
Criado especificamente para a estrutura messages.json de browser extension, com suporte para message, description e placeholders.
Preserva a sintaxe $PLACEHOLDER$ exatamente como está. As suas variáveis mantêm-se intactas em todos os idiomas.
Lemos os seus campos de descrição e usamos-nos como pistas de contexto para traduções por IA mais precisas.
Descarregue um ZIP com a estrutura correta de pastas _locales/{lang}/messages.json. Basta colocá-lo na sua extensão.
Todos os idiomas são traduzidos em simultâneo. A maioria dos trabalhos fica concluída em menos de 5 minutos.
Sem subscrições, sem taxas mensais. Pague uma vez por trabalho, descarregue para sempre.
A messages.json entry pairs a key with a "message" string, an optional "description" used as translation context, and an optional "placeholders" map. LocalePack parses all three: it translates only the message text, forwards the description to the model as context, and returns $PLACEHOLDER$ and $1 substitution tokens byte-identical.
_locales/
├── en/
│ └── messages.json ← default_locale
├── de/
│ └── messages.json
├── fr/
│ └── messages.json
└── ja/
└── messages.json{
"appName": {
"message": "My Extension",
"description": "Extension name"
},
"greeting": {
"message": "Hello, $USER$!",
"placeholders": {
"user": { "content": "$1" }
}
}
}API em tempo de execução
chrome.i18n / browser.i18nExemplo de chamada
getMessage("key")Obrigatório no manifesto
"default_locale"The same translated messages.json drops into _locales/{locale}/ for Chrome, Firefox, Edge, Opera and Safari without further edits.
A messages.json entry is more than a key and a string. Getting these four pieces wrong is what breaks extensions after machine translation.
Most generic translation tools treat $PLACEHOLDER$ and $1 as ordinary words. Once they are translated or reordered, the extension ships with broken interpolation.
As ferramentas de tradução de uso geral não compreendem o formato de browser extension.
LocalePack | Tradução manual | TMS genérico | |
|---|---|---|---|
| Tempo de configuração | 2 minutos | Horas por idioma | 30+ minutos |
| Transparência de custos | |||
| Segurança do formato do WebExtension | |||
| Proteção de placeholders | |||
| Velocidade (52 idiomas) | < 5 min | Semanas | Horas |
| Melhor para | Any messages.json file | Projetos pequenos | Aplicações web empresariais |
Projetos reais que usaram o LocalePack para chegar a um público global em até 52 idiomas.

How the AstrologerAI app translated its entire experience into 52 languages with LocalePack — 6.3M tokens for $58.73 — to reach a worldwide audience in their own language.

How the DevToys.pro web app translated its entire UI into 52 languages with LocalePack — 5.8M tokens for $58.44 — and quadrupled its international organic traffic.

How the DevToys New Tab Chrome extension localized both its in-extension UI and its Chrome Web Store listing into 52 languages to reach a global audience.

We used our own tool to translate the entire LocalePack site into 52 languages — 2.9M tokens for $27.37 — so developers worldwide find us in their own language.
“Poupou-me horas de trabalho aborrecido. Carreguei o meu messages.json e recebi traduções perfeitas exatamente no formato de que precisava.”
Sarah K.
Dev independente, extensão AdBlock
“Our $PLACEHOLDER$ tokens came back untouched in all 52 locales. That is the whole reason we stopped scripting it ourselves.”
Marcus T.
Responsável pela manutenção de extensões
“A transparência de preços foi o fator decisivo. Soube exatamente quanto iria pagar antes de carregar fosse o que fosse.”
Dev J.
Contribuidor de código aberto
52
Idiomas suportados
100%
Saída segura para placeholders
ZIP
Pronto a lançar
Tudo o que precisa de saber sobre o LocalePack.
Deep dives on the formats, APIs and errors behind this page — written for developers, not translators.
A complete reference for the WebExtension messages.json format: the message, description, and placeholders fields, $PLACEHOLDER$ syntax, $1 positional substitutions, and common mistakes.
How to catch every class of messages.json error before your users do: JSON syntax, missing required fields, missing keys across locales, malformed placeholder syntax, and manifest key mismatches.
How the __MSG_key__ substitution syntax works in Chrome and Firefox extension manifests: which fields support it, how Chrome resolves tokens at load time, and the pitfalls that cause silent failures or upload rejections.
getMessage() returns an empty string when a message is missing, and logs nothing at all. Every cause of the silent empty string, how to tell it apart from undefined, and how to confirm each one.
Pague uma vez - Descarregue o ZIP - Lance globalmente
Experimente o LocalePack