Переводите каталоги .po за считанные минуты с сохранением структуры.
Плейсхолдеры, формы множественного числа, msgctxt и встроенные теги сохраняются при обработке. Вы видите стоимость до запуска любого процесса. На выходе получаются валидные файлы gettext в структуре вашего репозитория, готовые к слиянию.
locale/de/LC_MESSAGES/messages.poпроверка целостности пройденаmsgfmtЗаголовки множественного числа считываются, а не угадываются: 6 для арабского, 3 для польскогоИзолированные отзываемые API-ключи · подписанные вебхукиПредварительный расчет стоимости перед каждой задачей · предоплатный балансПеретащите папку или отправьте запрос POST.
Тот же движок, те же каталоги, тот же журнал аудита. Выберите интерфейс, который соответствует вашему рабочему процессу.
Смотрите стоимость, наблюдайте за выполнением, проверяйте неточности.
- 01Перетащите файлы
.poили целую папку локали, целевые языки считываются из каждого заголовка. - 02Выберите уровень качества (Черновик, Стандарт или Про) и просмотрите количество записей, слов и стоимость перед подтверждением.
- 03Следите за выполнением по частям для каждой локали.
- 04Проверяйте помеченные записи, перезапускайте только их, скачивайте ZIP-архив в структуре репозитория.
Локализация как этап конвейера.
Ограниченный ключ, один запрос POST, подписанный вебхук по завершении. Загружайте каталоги в CI и открывайте PR.
POST /v1/jobscurl -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. Это языки, которые мы официально поддерживаем и проверяем, включая региональные варианты, которые большинство инструментов объединяет.
Диалекты
pt-BR и pt-PT, es-ES и es-419, en-GB/US/AU/CA, fr и fr-CA, zh-Hans и zh-Hant, норвежский букмол и нюнорск — один и тот же исходный текст, корректно отличающийся на выходе (словарный запас и правила множественного числа).
Справа налево
Арабский, иврит, персидский и урду отображаются справа налево с корректно зеркальным расположением элементов.
Множественные числа
Формы множественного числа считываются из заголовка каждой локали, а не угадываются (например, 6 для арабского, 3 для польского).
Абонентская плата за первый месяц — за наш счет.
После этого: фиксированная ежемесячная абонентская плата и оплата по факту за переведенные слова. Средства вносятся авансом и списываются по ходу задач, поэтому счет не превысит баланс.
То, о чем вы действительно переживаете.
«Будут ли сюрпризы в счете?»
Ничего не запускается до просмотра сметы. Баланс предоплатный, групповые лимиты являются строгими ограничениями, а задачи приостанавливаются во избежание перерасхода.
«Это файлы для продакшна.»
На выходе — валидный gettext, который вы проверяете до слияния. Ключи изолированы и отзываемы, расходы привязаны к ключам, а каждая задача оставляет след в журнале аудита.
«Мы работаем с CJK и RTL.»
И эта страница тоже. Для арабского языка предусмотрено шесть форм множественного числа, для польского — три, считываемые из вашего заголовка; каждый индекс заполнен, а разметка зеркальна там, где это необходимо.
Укажите на один каталог и проверьте сами.
Зарегистрируйтесь, перетащите файл .po и посмотрите предварительный расчет стоимости. Это вся оценка, созвон с демонстрацией не требуется.