
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.
Upload je bronbestand messages.json, kies doeltalen, betaal eenmalig en download een kant-en-klare _locales ZIP.
Drie eenvoudige stappen om je browser extension te lokaliseren. Vertalingen starten na betaling—we zetten taken in de wachtrij en genereren de ZIP binnen enkele minuten.
Sleep je bronbestand messages.json hierheen. We parseren het direct en valideren het browser extension-formaat.
Kies uit 52 talen. Bekijk transparante prijzen op basis van je bestandsgrootte voordat je betaalt.
Betaal eenmalig via Stripe. We genereren alle _locales/{lang}/messages.json-bestanden en bundelen ze in een ZIP.
Zie precies wat je betaalt voordat je uploadt. De definitieve prijs wordt na het uploaden berekend op basis van tekenreekslengte en de geselecteerde talen.
Sleep messages.json hierheen
of klik om te bladeren
messages.json input. Max 500KB.
3 van 55 talen geselecteerd
Definitieve prijs wordt berekend na het uploaden van het bestand op de afrekenpagina
Eenmalige betaling • Geen abonnement
Speciaal gebouwd voor het locale-formaat van browser extension. Geen generieke vertaaltool.
Speciaal gebouwd voor de browser extension messages.json-structuur met ondersteuning voor message, description en placeholders.
Behoudt de $PLACEHOLDER$-syntax exact zoals die is. Je variabelen blijven intact in alle talen.
We lezen je description-velden en gebruiken ze als context-hints voor nauwkeurigere AI-vertalingen.
Download een ZIP met de juiste mapstructuur _locales/{lang}/messages.json. Sleep het in je extensie.
Alle talen worden tegelijkertijd vertaald. De meeste taken zijn binnen 5 minuten klaar.
Geen abonnementen, geen maandelijkse kosten. Betaal één keer per taak, download voor altijd.
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" }
}
}
}Runtime-API
chrome.i18n / browser.i18nVoorbeeldaanroep
getMessage("key")Vereist in manifest
"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.
Vertaaltools voor algemene doeleinden begrijpen het browser extension-formaat niet.
LocalePack | Handmatige vertaling | Generieke TMS | |
|---|---|---|---|
| Insteltijd | 2 minuten | Uren per taal | 30+ minuten |
| Kostentransparantie | |||
| WebExtension-formaatveiligheid | |||
| Placeholder-bescherming | |||
| Snelheid (52 talen) | < 5 min | Weken | Uren |
| Beste voor | Any messages.json file | Kleine projecten | Enterprise-webapps |
Echte projecten die LocalePack gebruikten om een wereldwijd publiek te bereiken in maximaal 52 talen.

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.
“Heeft me uren aan saai werk bespaard. Ik uploadde mijn messages.json en kreeg perfecte vertalingen terug in precies het formaat dat ik nodig had.”
Sarah K.
Indie dev, AdBlock-extensie
“Our $PLACEHOLDER$ tokens came back untouched in all 52 locales. That is the whole reason we stopped scripting it ourselves.”
Marcus T.
Extensiebeheerder
“Transparante prijzen waren de doorslaggevende factor. Ik wist precies wat ik zou betalen voordat ik iets uploadde.”
Dev J.
Open-sourcebijdrager
52
Ondersteunde locales
100%
Placeholder-veilige output
ZIP
Klaar om te shippen
Alles wat je moet weten over 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.
Betaal één keer - Download ZIP - Wereldwijd lanceren
Probeer LocalePack