Перейти к содержимому
Все инструменты Цены Блог

Чаты и голосовые сообщения

Документы

Аудио и видео

Войти

Язык

Перевод PO- или POT-файла онлайн с учётом множественных чисел и контекста

Загрузите шаблон .pot или частично переведённый файл .po и получите .po, где заполнен каждый пустой msgstr. msgid и msgctxt не меняются, комментарии и ссылки сохраняются, а записи с множественным числом получают столько форм, сколько нужно целевому языку. Первые строки бесплатно и без регистрации; весь файл — до 5,000 строк — стоит $5, разовый платёж.

Перевести файлы строк

Тон
Глоссарий и названия, которые не переводить (необязательно)

Названия брендов и продуктов через запятую. Каждое проверяется в каждом переводе.

Один термин в строке: термин = перевод.

Без регистрации. До строк: 300 — полностью бесплатно. Больше: первые строки бесплатно, все файлы задачи — $5, разовый платёж.

Продолжая, вы соглашаетесь с Условия использования и Политика конфиденциальности.

  • Пустые и fuzzy-записи переводятся; уже переведённые вами записи сохраняются
  • Записи с msgid_plural получают msgstr[0], msgstr[1] … для целевого языка, а в заголовке указывается Plural-Forms
  • msgctxt, комментарии переводчика (#.) и ссылки (#:) передаются как контекст и остаются в файле
  • Плейсхолдеры php-format, c-format и python-format проверяются в каждой строке
  • Подходит для плагинов и тем WordPress, проектов на Django, Python, PHP и C
Открыть демо

Посмотреть пример PDF

85 строк · ключи без изменений

{

"home.greeting": "Good morning, {name}Buenos días, {name}",

"home.nearby": "{count, plural, =0 {No trails near you yet} one {# trail near you} other {# trails near you}}{count, plural, =0 {Aún no hay rutas cerca de ti} one {# ruta cerca de ti} other {# rutas cerca de ti}}",

"trail.offline_done": "<b>{name}</b> is saved on this phone. You can use the map without a signal.<b>{name}</b> está guardado en este teléfono. Puedes usar el mapa sin señal.",

"trail.share_text": "I just finished {trail} with Trailbook! {km} km and {meters} m up. 🥾¡Acabo de terminar {trail} con Trailbook! {km} km y {meters} m de subida. 🥾",

"saved.empty": "You have not saved any trails yet.\nTap the heart on a trail to keep it here.Aún no has guardado ninguna ruta.\nToca el corazón en una ruta para guardarla aquí."

}

Жёлтый: плейсхолдеры и синтаксис множественного числа ICU, проверяются в каждой строке. Бирюзовый: теги, экранирование и эмодзи — остаются как есть.

Те же ключи. Те же плейсхолдеры. Новый язык.

Меняются только значения. Файл возвращается с той же вложенностью и в том же порядке, под именем es.json, а любая строка, потерявшая плейсхолдер, переводится заново ещё до того, как попадёт в вашу сборку.

Демо-приложение придумано для этой страницы; испанские строки — реальный результат работы инструмента, из файла на 85 строк.

От шаблона POT к файлу PO

Файл .pot — это список строк проекта, которые нужно перевести, и в нём каждый msgstr пуст. Загрузите его, выберите язык и получите .po с заполненным заголовком: Language, строка Plural-Forms для этого языка и кодировка UTF-8. Файл называется по языку, например myplugin.pot превращается в myplugin-de.po; переименуйте его так, как принято в вашем проекте, например в myplugin-de_DE.po для WordPress, и скомпилируйте в .mo привычным инструментом.

Формы множественного числа и fuzzy-записи

В разных языках счёт устроен по-разному. В английском две формы; в польском и русском в gettext их три; в арабском — шесть. Для каждой записи с множественным числом переводчик получает формы целевого языка с примерами чисел («форма 1: 2, 3, 4, 22») и пишет по одной строке на каждую форму. Если в вашем .po уже есть заголовок Plural-Forms для того же языка, используется это правило.

Записи с пометкой fuzzy переводятся заново; флаг fuzzy и старые строки #| msgid удаляются, а другие флаги, например php-format, сохраняются. Устаревшие записи #~ остаются нетронутыми.

Как работает инструмент, сколько он стоит и как обрабатываются ваши файлы — на странице Перевод файлов локализации; цены на все инструменты — на странице цены.

Обновлено

Вопросы и ответы

Перезапишет ли он мои существующие переводы?

Нет. Записи, у которых уже есть msgstr и нет пометки fuzzy, остаются точно такими, как были; переводятся только пустые и fuzzy-записи.

Создаёт ли он файл .mo?

Нет, вы получаете .po. Скомпилируйте его с помощью msgfmt, Poedit или команды вашего фреймворка, например wp i18n make-mo или compilemessages в Django.

Безопасны ли плейсхолдеры printf?

Каждый %s, %d, %1$s и %(name)s из msgid должен присутствовать в переводе. Строка, в которой что-то потерялось, переводится заново; если и это не помогло, её msgstr остаётся прежним (пустым или fuzzy), а сама строка попадает в список, так что gettext покажет исходный текст, а не испорченную строку.

Сколько это стоит?

Первые строки бесплатно. Весь файл — до 5,000 строк — стоит $5, разовый платёж, без подписки. Небольшие задачи — исключение: задача до 300 строк бесплатна полностью, включая скачивание.

Похожие задачи

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