Иногда проекты с открытым исходным кодом переводятся на множество иностранных языков.
С одной стороны, это делает их более доступными для широкого круга пользователей, но с другой стороны, все эти переводы нуждаются в поддержке.
Переводы обычно разбиваются на yaml-файлы и помещаются в отдельный каталог, содержимое которого выглядит примерно так: en.yml, ru.yml, de.yml. В проектах с открытым исходным кодом я вижу, что в определенный период времени кто-то решил перевести все тексты на родной язык, добавив файл типа xx.yml. Перевод сделан, все хорошо, но проект не стоит на месте, добавляются новые функции, удаляется старый код. Человек, сделавший первоначальный перевод, в большинстве случаев уже не следит за всеми этими перемещениями и не добавляет каждый раз новые переводы.
Люди, которые вносят код, также не могут переводить его на все языки, которые поддерживает проект. Оказывается, файлов yml много, эталонный обычно en.yml. Когда приходят новые люди, желающие дополнить недостающие переводы, они сталкиваются с проблемой, что каждый файл содержит сотни строк текста и нет возможности понять, какие из них отсутствуют или лишние.
Именно для этих целей я написал простенький джем под названием Отличия , который сравнивает файлы yaml и показывает отсутствующие ключи.
Вы можете установить, просто запустив
Если используется rbenv, то также нужно сделатьgem install differz
rbenv rehash
Чтобы показать разницу между en.yml и de.yml, вам нужно выполнить в консоли следующую строку:
differz show en.yml de.yml
Например, я запустил это приложение на популярном проекте activeadmin, который переведен на множество языков.
Вот результат сравнения en.yml и de.yml:
Планировалось позволить пользователю заполнить все недостающие ключи прямо из консоли.
Для этого будет использоваться команда редактирования, которая еще не написана.
Теги: #ruby #gem #differz #YAML #yml #ruby
-
Числа И Системы Счислений
19 Oct, 24 -
Модбук В Действии
19 Oct, 24 -
5-Я Киевская Хабрамиттинг
19 Oct, 24