
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.
Загрузите исходный messages.json, выберите целевые языки, оплатите один раз и скачайте готовый к публикации ZIP с _locales.
Три простых шага, чтобы локализовать ваше browser extension. Переводы запускаются после оплаты — мы ставим задания в очередь и генерируем ZIP за считанные минуты.
Перетащите исходный файл messages.json. Мы мгновенно его разберём и проверим формат browser extension.
Выбирайте из 52 языков. До оплаты вы увидите прозрачную стоимость, рассчитанную по размеру файла.
Оплатите один раз через Stripe. Мы сгенерируем все файлы _locales/{lang}/messages.json и упакуем их в ZIP.
Узнайте точную стоимость ещё до загрузки. Итоговая цена рассчитывается после загрузки на основе длины строк и выбранных языков.
Перетащите сюда messages.json
или нажмите, чтобы выбрать
messages.json input. Max 500KB.
Выбрано языков: 3 из 55
Итоговая цена рассчитывается после загрузки файла на странице оформления заказа
Разовый платёж • Без подписки
Специально разработано под формат локалей browser extension. Не универсальный инструмент перевода.
Создано специально под структуру browser extension messages.json с поддержкой message, description и placeholders.
Сохраняет синтаксис $PLACEHOLDER$ точно как есть. Ваши переменные остаются неизменными во всех языках.
Мы читаем поля description и используем их как контекстные подсказки для более точных AI-переводов.
Скачайте ZIP с правильной структурой папок _locales/{lang}/messages.json. Просто добавьте его в расширение.
Все языки переводятся одновременно. Большинство задач выполняется менее чем за 5 минут.
Без подписок и ежемесячных платежей. Платите один раз за задачу — скачивайте всегда.
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.i18nПример вызова
getMessage("key")Требуется в 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.
Универсальные инструменты перевода не понимают формат browser extension.
LocalePack | Ручной перевод | Универсальная TMS | |
|---|---|---|---|
| Время настройки | 2 минуты | Часы на язык | 30+ минут |
| Прозрачность стоимости | |||
| Безопасность формата WebExtension | |||
| Защита плейсхолдеров | |||
| Скорость (52 языка) | < 5 мин | Недели | Часы |
| Лучше всего подходит для | Any messages.json file | Небольшие проекты | Корпоративные веб-приложения |
Реальные проекты, которые использовали LocalePack, чтобы выйти на глобальную аудиторию на 52 языках.

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.
“Сэкономило мне часы нудной работы. Загрузила свой messages.json и получила идеальные переводы ровно в том формате, который мне был нужен.”
Сара К.
Инди-разработчик, расширение AdBlock
“Our $PLACEHOLDER$ tokens came back untouched in all 52 locales. That is the whole reason we stopped scripting it ourselves.”
Маркус Т.
Мейнтейнер расширения
“Прозрачные цены стали решающим фактором. Я точно знал, сколько заплачу, ещё до того, как что-либо загружать.”
Dev J.
Контрибьютор open source
52
Поддерживаемые локали
100%
Безопасно для плейсхолдеров
ZIP
Готово к релизу
Всё, что вам нужно знать о 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.
Оплатите один раз — скачайте ZIP — выпускайте по всему миру
Попробовать LocalePack