Поиск Недостающих Ключей В Файлах Yaml

Иногда проекты с открытым исходным кодом переводятся на множество иностранных языков.

С одной стороны, это делает их более доступными для широкого круга пользователей, но с другой стороны, все эти переводы нуждаются в поддержке.

Переводы обычно разбиваются на yaml-файлы и помещаются в отдельный каталог, содержимое которого выглядит примерно так: en.yml, ru.yml, de.yml. В проектах с открытым исходным кодом я вижу, что в определенный период времени кто-то решил перевести все тексты на родной язык, добавив файл типа xx.yml. Перевод сделан, все хорошо, но проект не стоит на месте, добавляются новые функции, удаляется старый код. Человек, сделавший первоначальный перевод, в большинстве случаев уже не следит за всеми этими перемещениями и не добавляет каждый раз новые переводы.

Люди, которые вносят код, также не могут переводить его на все языки, которые поддерживает проект. Оказывается, файлов yml много, эталонный обычно en.yml. Когда приходят новые люди, желающие дополнить недостающие переводы, они сталкиваются с проблемой, что каждый файл содержит сотни строк текста и нет возможности понять, какие из них отсутствуют или лишние.

Именно для этих целей я написал простенький джем под названием Отличия , который сравнивает файлы yaml и показывает отсутствующие ключи.

Вы можете установить, просто запустив

  
  
   

gem install differz

Если используется rbenv, то также нужно сделать

rbenv rehash

Чтобы показать разницу между en.yml и de.yml, вам нужно выполнить в консоли следующую строку:

differz show en.yml de.yml

Например, я запустил это приложение на популярном проекте activeadmin, который переведен на множество языков.

Вот результат сравнения en.yml и de.yml:

Поиск недостающих ключей в файлах yaml

Планировалось позволить пользователю заполнить все недостающие ключи прямо из консоли.

Для этого будет использоваться команда редактирования, которая еще не написана.

Теги: #ruby #gem #differz #YAML #yml #ruby

Вместе с данным постом часто просматривают: