Перейти до вмісту

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

Перетворіть gettext .po каталог перекладів у JSON та навпаки.

Введення
Вихід

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

Вставте gettext .po каталог і цей інструмент перетворить кожну пару msgid/msgstr на об'єкт JSON, готовий до завантаження в бібліотеку i18n JavaScript або ручної перевірки. Змініть напрямок і він працює навпаки, перетворюючи об'єкт перекладу JSON назад у коректний .po файл. Розробники використовують його для з'єднання інструментів управління перекладами, які експортують .po, з фронтенд-стеками, які очікують JSON, без встановлення інструментів gettext або написання ad-hoc скрипту.

Параметри керують точною формою 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 файл ніколи не залишає вашого пристрою.