gettext · каталоги .po · более 60 языков и диалектов

Переводите каталоги .po за считанные минуты с сохранением структуры.

Плейсхолдеры, формы множественного числа, msgctxt и встроенные теги сохраняются при обработке. Вы видите стоимость до запуска любого процесса. На выходе получаются валидные файлы gettext в структуре вашего репозитория, готовые к слиянию.

Абонентская плата за первый месяц за наш счет. После этого вы пополняете баланс и платите за фактический объем переведенных слов: никаких затрат на ознакомление и никаких скрытых платежей, которые потом придется возвращать.
реальный вывод · en → de · zh-Hans · ru · ar
locale/de/LC_MESSAGES/messages.poпроверка целостности пройдена
источник · en#: src/inbox/list.tsx:142msgctxt "inbox.badge"msgid "Hi %1$s, you have %2$d new <b>unread</b> messages"#: src/billing/receipt.tsx:88msgid "Use code {{code}} before %(date)s"
перевод · плейсхолдеры сохраненыHallo %1$s, du hast %2$d neue <b>ungelesene</b> Nachrichten你好 %1$s,你有 %2$d 条新的未读消息Привет, %1$s! У вас %2$d новых сообщенийمرحبًا %1$s، لديك %2$d رسائل جديدة
msgctxt сохранен{{code}}%(date)snested <b><i>
элементов0
слов~7,400
приблиз. стоимость · черновик · для примера~$0.69
отображается до запускаВы утверждаете смету. Задачи ставятся на паузу во избежание перерасхода.
На выходе валидный gettext, компилируемый с помощью msgfmtЗаголовки множественного числа считываются, а не угадываются: 6 для арабского, 3 для польскогоИзолированные отзываемые API-ключи · подписанные вебхукиПредварительный расчет стоимости перед каждой задачей · предоплатный баланс
два способа интеграции · один продукт

Перетащите папку или отправьте запрос POST.

Тот же движок, те же каталоги, тот же журнал аудита. Выберите интерфейс, который соответствует вашему рабочему процессу.

для команд локализации

Смотрите стоимость, наблюдайте за выполнением, проверяйте неточности.

  1. 01Перетащите файлы .po или целую папку локали, целевые языки считываются из каждого заголовка.
  2. 02Выберите уровень качества (Черновик, Стандарт или Про) и просмотрите количество записей, слов и стоимость перед подтверждением.
  3. 03Следите за выполнением по частям для каждой локали.
  4. 04Проверяйте помеченные записи, перезапускайте только их, скачивайте ZIP-архив в структуре репозитория.
11 файловЗавершено
en → pl, it, pt-PT, ar, pt-BR, de, fr, es +3550/550 элементов · 10/10 фрагментов
для разработчиков

Локализация как этап конвейера.

Ограниченный ключ, один запрос POST, подписанный вебхук по завершении. Загружайте каталоги в CI и открывайте PR.

POST /v1/jobs
curl -X POST https://api.echo-lingua.com/v1/jobs \
  -H "Authorization: Bearer $ECHO_LINGUA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sourceLanguage": "en",
    "contextMode": "ui-label",
    "quality": "standard",
    "inputs": [
      { "filename": "de/messages.po", "targetLanguage": "de", "content": "…" },
      { "filename": "ar/messages.po", "targetLanguage": "ar", "content": "…" }
    ]
  }'
webhook · job.completed (подписано)
{
  "id": "whd_3f9c8a",
  "type": "job.completed",
  "createdAt": 1726669123456,
  "data": {
    "jobId": "job_8f2c41",
    "status": "COMPLETE",
    "downloadUrl": "/v1/jobs/job_8f2c41/download"
  }
}
что вы получаете

Шесть вещей, которые скрипт за вас не сделает.

Сохранение структуры

Плейсхолдеры, множественные числа, msgctxt и HTML переживают весь цикл обработки, каждая запись проверяется, а не просто предполагается.

%1$s · {{code}} · %(date)s · <b><i>

Стоимость известна заранее

Записи, слова и ориентировочная стоимость до отправки. Предоплатный баланс списывается по мере выполнения задач. Лимиты групп блокируют новые задачи вместо неприятных сюрпризов.

550 записей · ~7 400 слов · ~$0,69 черновик (иллюстративно)

Учет контекста

Режимы элементов интерфейса, маркетинга или документации, а также глоссарий с терминами без изменений и обоснование для каждой записи при необходимости.

quality=draft · standard · pro

Проверка и восстановление

Записи, не прошедшие проверку целостности, помечаются в каталоге и никогда не отправляются молча. Перезапустите только то, что не прошло.

#, el-review

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

Настоящий HTTP API: ключи с ограничением прав доступа, подписанные вебхуки, отслеживание расходов по ключам, загрузки для CI.

POST /v1/jobs → job.completed

Встраивается в ваш репозиторий

Выходные данные повторяют дерево ввода, по одному файлу на локаль в валидном формате gettext. Распакуйте поверх locale/ и изучите изменения.

locale/ar/LC_MESSAGES/messages.po
охват

Более шестидесяти языков и значимые диалекты.

Перевод управляется моделями, поэтому принимается любая локаль BCP-47 в заголовок PO. Это языки, которые мы официально поддерживаем и проверяем, включая региональные варианты, которые большинство инструментов объединяет.

AfrikaansafArabicRTLarBasqueeuBengalibnBulgarianbgCantoneseyueCatalancaChinese (Simplified)zh-HansChinese (Traditional)zh-HantCroatianhrCzechcsDanishdaDutchnlEnglishenEnglish (Australia)en-AUEnglish (Canada)en-CAEnglish (UK)en-GBEnglish (US)en-USEstonianetFilipinofilFinnishfiFrenchfrFrench (Canada)fr-CAGermandeGreekelGujaratiguHebrewRTLheHindihiHungarianhuIcelandicisIndonesianidIrishgaItalianitJapanesejaKazakhkkKoreankoLatvianlvLithuanianltMalaymsMaltesemtNepalineNorwegian BokmålnbNorwegian NynorsknnPersianRTLfaPolishplPortugueseptPortuguese (Brazil)pt-BRPortuguese (Portugal)pt-PTRomanianroRussianruSerbiansrSlovakskSlovenianslSpanishesSpanish (Latin America)es-419Spanish (Spain)es-ESSwahiliswSwedishsvTamiltaThaithTurkishtrUkrainianukUrduRTLurVietnameseviWelshcy
В предпросмотре, качество еще не проверено
AmharicamBurmesemyKhmerkmLaoloSinhalasiZuluzu
Официально поддерживается: 65 · в превью: 6 · принимаются любые локали BCP-47

Диалекты

pt-BR и pt-PT, es-ES и es-419, en-GB/US/AU/CA, fr и fr-CA, zh-Hans и zh-Hant, норвежский букмол и нюнорск — один и тот же исходный текст, корректно отличающийся на выходе (словарный запас и правила множественного числа).

Справа налево

Арабский, иврит, персидский и урду отображаются справа налево с корректно зеркальным расположением элементов.

Множественные числа

Формы множественного числа считываются из заголовка каждой локали, а не угадываются (например, 6 для арабского, 3 для польского).

тарифы · честно и просто

Абонентская плата за первый месяц — за наш счет.

После этого: фиксированная ежемесячная абонентская плата и оплата по факту за переведенные слова. Средства вносятся авансом и списываются по ходу задач, поэтому счет не превысит баланс.

первые 30 днейАбонентская плата отмененаКарта открывает бесплатный месяц. Никаких списаний за изучение приложения, предварительный просмотр стоимости или чтение документации.
затемЗа переведенное словоПополняйте баланс, переводите и следите за списаниями. Каждая задача сначала показывает оценку стоимости, а оплата идет по фактическому использованию (обычно меньше).
командыЕдиный баланс, счета на владельцаРасходы распределяются по участникам и ключам, с лимитами на группы. Активные пользователи могут запросить ежемесячное выставление счетов.
о чем все молчат

То, о чем вы действительно переживаете.

«Будут ли сюрпризы в счете?»

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

«Это файлы для продакшна.»

На выходе — валидный gettext, который вы проверяете до слияния. Ключи изолированы и отзываемы, расходы привязаны к ключам, а каждая задача оставляет след в журнале аудита.

«Мы работаем с CJK и RTL.»

И эта страница тоже. Для арабского языка предусмотрено шесть форм множественного числа, для польского — три, считываемые из вашего заголовка; каждый индекс заполнен, а разметка зеркальна там, где это необходимо.

Укажите на один каталог и проверьте сами.

Зарегистрируйтесь, перетащите файл .po и посмотрите предварительный расчет стоимости. Это вся оценка, созвон с демонстрацией не требуется.

Начать бесплатноАбонентская плата за первый месяц отменена · затем оплата за слово · отмена в любой момент