Перейти к содержанию

Конвертер PO в JSON

Преобразуйте gettext .po каталог переводов в JSON и обратно.

Входные данные
Выходные данные

Конвертер PO в JSON

Вставьте gettext .po каталог и этот инструмент преобразует каждую пару msgid/msgstr в объект JSON, готовый к загрузке в библиотеку i18n на JavaScript или ручной проверке. Измените направление и он работает в обратном направлении, преобразуя объект JSON перевода обратно в корректный .po файл. Разработчики используют его для связи инструментов управления переводами, которые экспортируют .po, со стеками фронт-энда, которые ожидают JSON, без установки инструментов gettext или написания специального скрипта.

Опции управляют точной формой JSON. "Группировать ключи по точкам в msgid" превращает плоский каталог вроде "nav.home" во вложенные объекты вместо одного длинного ключа. "Удалить записи без перевода" отфильтровывает msgid, которые еще никто не переводил. Множественные формы (msgid_plural плюс msgstr[0], msgstr[1]...) становятся либо массивом JSON, либо отдельными ключами с суффиксами вроде key_0 и key_1. Контекст msgctxt, когда присутствует, может складываться в ключ как префикс context|msgid, чтобы идентичные английские строки, используемые в разных местах, не конфликтовали. Комментарии, ссылки на исходный код и заголовок каталога (блок метаданных в начале большинства .po файлов) могут сохраняться или удаляться.

Многострочные и объединенные строковые литералы, экранированные кавычки, обратные косые черты и новые строки обрабатываются так, как сам gettext их записывает, в обоих направлениях. Живая статистика сообщает, сколько записей переведено, не переведено и отмечено как нечеткие, чтобы вы могли оценить полноту каталога без открытия редактора переводов. Поддерживаются очень большие каталоги; результат, который превысил бы лимит размера вывода, выдает сообщение вместо зависания вкладки.

Все работает локально в вашем браузере — .po файл часто содержит весь текст интерфейса продукта, и ничего из этого никуда не загружается. Скопируйте результат, загрузите его как .txt файл или отправьте его прямо обратно во вводное поле, чтобы преобразовать снова в противоположном направлении.

FAQ

Что происходит с заголовком .po при преобразовании в JSON?
Когда опция "Сохранять заголовок каталога" включена, блок метаданных (msgid "") включается в объект под ключом пустой строки. Выключите ее, чтобы получить только переведенные строки.
Как представлены множественные формы?
Когда "Множественные формы как массив" включено, записи msgid_plural становятся массивом JSON с каждым msgstr[n]. Выключите это и каждая форма становится отдельным ключом с числовым суффиксом, вроде item_0 и item_1.
Могу ли я преобразовать файл туда-сюда через оба направления?
Да. Преобразуйте .po в JSON, отредактируйте JSON, затем переключите направление и преобразуйте обратно — одни и те же опции (вложение, префикс msgctxt, стиль множественного) используются с обеих сторон, так что формы совпадают.
Что считается нечеткой записью?
Запись, которую gettext отметил флагом #, fuzzy, означающим, что машина или предыдущий переводчик составил черновик, но она все еще требует проверки. Живая статистика подсчитывает эти отдельно от переведенных и непереведенных записей.
Мой каталог переводов загружается где-нибудь?
Нет. Преобразование выполняется полностью в вашем браузере с использованием JavaScript — ваш .po или JSON файл никогда не покидает ваше устройство.