Конвертер 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 файл или отправьте его прямо обратно во вводное поле, чтобы преобразовать снова в противоположном направлении.