
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.
Envie seu messages.json de origem, escolha os idiomas de destino, pague uma vez e baixe um ZIP de _locales pronto para publicar.
Três passos simples para localizar sua browser extension. As traduções são executadas após o pagamento — colocamos as tarefas na fila e geramos o ZIP em minutos.
Solte seu arquivo messages.json de origem. Nós o analisamos instantaneamente e validamos o formato da browser extension.
Escolha entre 52 idiomas. Veja preços transparentes com base no tamanho do seu arquivo antes de pagar.
Pague uma vez via Stripe. Geramos todos os arquivos _locales/{lang}/messages.json e os reunimos em um ZIP.
Veja exatamente quanto você vai pagar antes de enviar. O orçamento final é calculado após o envio com base no comprimento das strings e nos idiomas selecionados.
Solte o messages.json aqui
ou clique para procurar
messages.json input. Max 500KB.
3 de 55 idiomas selecionados
Preço final calculado após o envio do arquivo na página de checkout
Pagamento único • Sem assinatura
Criado especificamente para o formato de locale do browser extension. Não é uma ferramenta de tradução genérica.
Criado especificamente para a estrutura messages.json do browser extension, com suporte a message, description e placeholders.
Preserva a sintaxe $PLACEHOLDER$ exatamente como está. Suas variáveis permanecem intactas em todos os idiomas.
Lemos seus campos de descrição e os usamos como dicas de contexto para traduções por IA mais precisas.
Baixe um ZIP com a estrutura correta de pastas _locales/{lang}/messages.json. É só colocar na sua extensão.
Todos os idiomas são traduzidos simultaneamente. A maioria dos trabalhos é concluída em menos de 5 minutos.
Sem assinaturas, sem taxas mensais. Pague uma vez por trabalho e baixe 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.
Ferramentas de tradução de uso geral não entendem o formato do browser extension.
LocalePack | Tradução manual | TMS genérico | |
|---|---|---|---|
| Tempo de configuração | 2 minutos | Horas por idioma | Mais de 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 | Aplicativos web corporativos |
Projetos reais que usaram o LocalePack para alcançar 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.
“Me poupou horas de trabalho tedioso. Enviei meu messages.json e recebi de volta traduções perfeitas no formato exato de que eu precisava.”
Sarah K.
Dev indie, 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.
Mantenedor de extensão
“A precificação transparente foi o diferencial. Eu sabia exatamente quanto pagaria antes de enviar qualquer coisa.”
Dev J.
Contribuidor de código aberto
52
Idiomas suportados
100%
Saída segura para placeholders
ZIP
Pronto para publicar
Tudo o que você precisa 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 - Baixe o ZIP - Lance globalmente
Experimente o LocalePack