Ира Туманова написала об автоматизации подготовки перевода интерфейса в многоязычном пр... — 18 июня 2026 г. в 17:13:43.168
Ира Туманова написала об автоматизации подготовки перевода интерфейса в многоязычном продукте. — Каждая текстовая строка в коде заменяется ключом. Основные решения: i18next, Lingui и FormatJS; — ICU MessageFormat — синтаксис для форматирования сообщений, который позволяет разработчикам учитывать сложности человеческого языка; — Значения ключей (текстовые строки на разных языках) хранятся в специальных файлах, откуда система берёт текст для заданного языка; — Translation management system позволяет управлять переводами: смотреть статус ключа, на какие языки он уже переведён. Интересные TMS: Lokalise, Phrase, Crowdin, POEditor; — Доделав фичу, разработчик запускает скрипт экстракции ключей из кода в TMS и создаёт задачу для переводчиков (со ссылками на ключи); — Чтобы минимизировать человеческий фактор, в Яндекс Go процесс запускается сам при Pull Request в основную ветку; — После того, как переводчики подготовят переводы, надо забрать их из TMS обратно в файлы локализации; — В Яндекс Go это происходит автоматически по крону каждый день в 5 утра: скрипт по TMS API запрашивает все новые переводы, раскладывает данные по файлам, создаёт Pull Request с изменениями; — Плюс добавили проверку на дубликаты, чтобы случайно не слить два Pull Request с одинаковыми ключами; — Разработчики в среднем заводили 2,5 задачи в день на переводы. Это порядка 20 минут на задачи и последующее обновление файлов переводов. Немного, но выбивало из рабочего потока. #localization

