Skip to main content
AI agent network visualization

Перевод файлов PO без потери форм множественного числа

msgid остаётся неизменным. Формы множественного числа соответствуют каждому языку. Комментарии сохраняются. Привычный процесс gettext, только быстрее.

Инструменты перевода PO не учитывают особенности формата

Файлы PO — не просто пары ключей и значений. В них есть зависящие от языка формы множественного числа, контекст сообщения для устранения неоднозначности, комментарии переводчиков и ссылки на исходный код. Большинство инструментов рассматривает их как обычные текстовые файлы.

Значения nplurals и формулы множественного числа различаются по языкам. Универсальные инструменты используют неверное число форм.

Контекст msgctxt для устранения неоднозначности игнорируется или переводится

Комментарии переводчиков (#.) и ссылки на исходный код (#:) удаляются

Заголовки кодировки символов и метаданные PO повреждаются

Исходный текст (английский)
messages.pot
#: src/components/Cart.tsx:42
#. Translator: shown when cart is empty
msgid "Your cart is empty"
msgstr ""

#: src/components/Cart.tsx:55
msgid "item"
msgid_plural "items"
msgstr[0] ""
msgstr[1] ""

#: src/components/Auth.tsx:12
msgctxt "button"
msgid "Sign in"
msgstr ""
Перевод (испанский)
es/LC_MESSAGES/messages.po
#: src/components/Cart.tsx:42
#. Translator: shown when cart is empty
msgid "Your cart is empty"
msgstr "Tu carrito está vacío"

#: src/components/Cart.tsx:55
msgid "item"
msgid_plural "items"
msgstr[0] "artículo"
msgstr[1] "artículos"

#: src/components/Auth.tsx:12
msgctxt "button"
msgid "Sign in"
msgstr "Iniciar sesión"

Что сохраняет i18n Agent

Формы множественного числа для каждого языка

Правильные nplurals и формула множественного числа для каждого целевого языка. Ручная настройка форм не требуется.

Контекст сообщения

msgctxt сохраняется для устранения неоднозначности. Слово «bank» в значении берега реки и финансового учреждения переводится по-разному.

Комментарии и ссылки

Комментарии переводчиков (#.), извлечённые комментарии (#:) и флаги (#,) сохраняются

Метаданные PO

Заголовки Content-Type, Plural-Forms и charset правильно задаются для целевого языка

Работает с Вашим стеком

WordPress / WP-CLI
Django
PHP (gettext)
Python (gettext / Babel)
C/C++ (GNU gettext)
Ruby (gettext gem)

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

How i18n Agent works: Install, Translate, Done
1
2
3
terminal
$translate_filesrc/messages/en.json
 --target["de", "ja", "es"]
Done.3 languages, 142 keys translated.

Без ручного копирования, извлечения строк и лишних действий. Только переведённые файлы.

Попробовать i18n Agent

Перетащите сюда файл перевода

JSON, YAML, PO, XML, CSV, Markdown, Properties

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

Целевые языки

Регистрация не требуетсяМгновенный расчёт

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

Для разработчиков

Установите инструмент CLI и переведите первый файл за 2 минуты.

Установить инструмент CLI

Для корпоративных команд

Всё ещё связаны контрактом с TMS? Обсудим переход.