LocalePack
ChromeFirefoxEdgeOperaSafariЛистинг в CWS
Vue.jsReact
Next.jsi18nextReact Native
Руководства для разработчиковИстории успеха
Создано специально для дополнений Firefox

ИИ-локализация для дополнения Firefox

Загрузите исходный messages.json, выберите целевые языки, оплатите один раз и скачайте готовый к публикации ZIP с _locales.

Безопасный перевод плейсхолдеров
Совместимо с Firefox messages.json
Прозрачные цены
messages.json
Исходный язык (пример)
{
  "appName": {
    "message": "My Extension",
    "description": "Name"
  },
  "welcomeMsg": {
    "message": "Hello, $USER$!",
    "placeholders": {
      "user": {
        "content": "$1"
      }
    }
  }
}
Немецкий (результат)
{
  "appName": {
    "message": "Meine Erweiterung",
    "description": "Name"
  },
  "welcomeMsg": {
    "message": "Hallo, $USER$!",
    "placeholders": {
      "user": {
        "content": "$1"
      }
    }
  }
}
52 locales

Как это работает

Три простых шага, чтобы локализовать ваше дополнение Firefox. Переводы запускаются после оплаты — мы ставим задания в очередь и генерируем ZIP за считанные минуты.

01

Загрузить

Перетащите исходный файл messages.json. Мы мгновенно его разберём и проверим формат дополнение Firefox.

02

Выберите языки и узнайте цену

Выбирайте из 52 языков. До оплаты вы увидите прозрачную стоимость, рассчитанную по размеру файла.

03

Скачайте ZIP

Оплатите один раз через Stripe. Мы сгенерируем все файлы _locales/{lang}/messages.json и упакуем их в ZIP.

Демо расчёта цены в реальном времени

Прозрачный калькулятор стоимости

Узнайте точную стоимость ещё до загрузки. Итоговая цена рассчитывается после загрузки на основе длины строк и выбранных языков.

1. Загрузите файл

Перетащите сюда messages.json

или нажмите, чтобы выбрать

Только формат Firefox WebExtension. Максимум 500KB.

2. Выберите языки

|

Выбрано языков: 3 из 55

3. Ваша оценка

Выбрано языков3

Итоговая цена рассчитывается после загрузки файла на странице оформления заказа

Разовый платёж • Без подписки

Создано для разработчиков

Специально разработано под формат локалей дополнение Firefox. Не универсальный инструмент перевода.

Поддержка формата Firefox

Создано специально под структуру дополнение Firefox messages.json с поддержкой message, description и placeholders.

Защита плейсхолдеров

Сохраняет синтаксис $PLACEHOLDER$ точно как есть. Ваши переменные остаются неизменными во всех языках.

Контекст из описаний

Мы читаем поля description и используем их как контекстные подсказки для более точных AI-переводов.

Готовый ZIP-экспорт

Скачайте ZIP с правильной структурой папок _locales/{lang}/messages.json. Просто добавьте его в расширение.

Параллельная обработка

Все языки переводятся одновременно. Большинство задач выполняется менее чем за 5 минут.

Разовый платёж

Без подписок и ежемесячных платежей. Платите один раз за задачу — скачивайте всегда.

Как работает i18n расширения Firefox

Firefox WebExtensions используют тот же формат messages.json в _locales/. Поле "default_locale" в manifest.json обязательно, если существует каталог _locales/ — если его не указать, дополнение будет отклонено. API browser.i18n считывает строки локали во время выполнения, с полной поддержкой подстановки $PLACEHOLDER$.

Структура папки _locales/
_locales/
├── en/
│   └── messages.json   ← default_locale
├── de/
│   └── messages.json
├── fr/
│   └── messages.json
└── ja/
    └── messages.json
messages.json
{
  "appName": {
    "message": "My Extension",
    "description": "Extension name"
  },
  "greeting": {
    "message": "Hello, $USER$!",
    "placeholders": {
      "user": { "content": "$1" }
    }
  }
}

Runtime API

browser.i18n

Пример вызова

browser.i18n.getMessage("appName")

Требуется в manifest

"default_locale"

AMO (addons.mozilla.org) показывает название и описание вашего дополнения на языке рецензента, если присутствует _locales/. Единообразные переводы для всех локалей повышают вероятность одобрения в магазине.

Подробно о Firefox i18n →

Firefox and AMO work differently

Firefox reads the same file format as Chrome, but Mozilla's store handles listing text in a completely separate place.

Same format, different namespace
Firefox reads the identical _locales/{locale}/messages.json layout. The runtime namespace is browser.i18n rather than chrome.i18n, with full $PLACEHOLDER$ support.
default_locale is required
Whenever the _locales/ directory exists, manifest.json must declare default_locale. Omitting it causes the add-on to be rejected.
Your AMO listing is a separate job
The name, summary, and description shown on addons.mozilla.org are not read from _locales/. They are localized separately in the AMO developer hub — Mozilla lets you translate nearly all listing text, including the add-on name.
Mozilla has no translator pipeline
Mozilla has publicly acknowledged it has no way to connect extension developers with the translation community at scale, which is why most AMO listings stay English-only.

Shipping a fully localized _locales/ folder does not localize your AMO page. Those are two separate pieces of work.

Почему бы не использовать универсальные инструменты?

Универсальные инструменты перевода не понимают формат дополнение Firefox.

LocalePack
Ручной перевод
Универсальная TMS
Время настройки2 минутыЧасы на язык30+ минут
Прозрачность стоимости
Безопасность формата Firefox
Защита плейсхолдеров
Скорость (52 языка)< 5 минНеделиЧасы
Лучше всего подходит длядополнения FirefoxНебольшие проектыКорпоративные веб-приложения

Истории успеха

Реальные проекты, которые использовали LocalePack, чтобы выйти на глобальную аудиторию на 52 языках.

AstrologerAI AI astrology app localized into 52 languages

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.

DevToys.pro developer tools web app localized into 52 languages

DevToys.pro: 400% international traffic growth across 52 languages

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.

DevToys New Tab Chrome extension localized into 52 languages

DevToys New Tab: a Chrome extension localized UI + store listing in 52 languages

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.

The LocalePack site localized into 52 languages with LocalePack

LocalePack localized itself into 52 languages — with LocalePack

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

“Наконец-то инструмент, который понимает формат дополнений Firefox. Больше не нужно исправлять сломанные плейсхолдеры после перевода.”

Маркус Т.

Мейнтейнер расширения

“Прозрачные цены стали решающим фактором. Я точно знал, сколько заплачу, ещё до того, как что-либо загружать.”

Dev J.

Контрибьютор open source

52

Поддерживаемые локали

100%

Безопасно для плейсхолдеров

ZIP

Готово к релизу

Часто задаваемые вопросы

Всё, что вам нужно знать о LocalePack.

Related developer guides

Deep dives on the formats, APIs and errors behind this page — written for developers, not translators.

Firefox WebExtensions i18n: messages.json reference

Using browser.i18n in Firefox add-ons: the messages.json format, AMO localization requirements, and how to avoid common pitfalls on addons.mozilla.org.

Localizing your Firefox AMO listing

How to localize an add-on listing on addons.mozilla.org: which fields can be translated, the 250-character summary ceiling and what it costs you in German and Russian, and the per-locale Developer Hub workflow.

messages.json format explained (with placeholders)

A complete reference for the WebExtension messages.json format: the message, description, and placeholders fields, $PLACEHOLDER$ syntax, $1 positional substitutions, and common mistakes.

Chrome extension locale codes: all 55

Every locale code Chrome accepts as a _locales folder name, with language and native names, the underscore-vs-hyphen trap that makes pt-BR silently ignored, and how Chrome picks a locale at runtime.

Browser extension i18n without a TMS subscription

Why Crowdin, Lokalise, and Phrase are overkill for most browser extension projects — and three real alternatives for indie developers who need to translate messages.json without a monthly subscription.

Browse all guides →

Готовы выпустить ваш дополнение Firefox по всему миру?

Оплатите один раз — скачайте ZIP — выпускайте по всему миру

Попробовать LocalePack
LocalePack
РуководстваКонфиденциальностьУсловияПоддержка

© 2025 LocalePack. Все права защищены.

Этот проект был переведён с помощью LocalePack logoLocalePack