Sometimes open source projects are translated into many foreign languages. On the one hand, this makes them more accessible to a wide range of users, but on the other hand, all these translations need to be supported. Translations are usually divided by yaml-files and separated into a separate directory, the contents of which look like this: en.yml, ru.yml, de.yml ...
What I have to see in open source projects is that at a certain period of time someone decided to translate all the texts into their native language, while adding a file of the form xx.yml. The translation is done, everything is fine, but the project does not stand still, new functions are added, the old code is deleted. The person who made the initial translation, in most cases, no longer follows all these movements and does not add new translations for each time. People who contribute the code are also not able to translate into all the languages that the project supports. It turns out that there are many yml files, the reference one is usually en.yml. When new people come, wishing to supplement the missing translations, they are faced with the problem that there are hundreds of lines of text in each file and there is no way to understand which of them are missing or redundant.
It is for these purposes that I wrote a simple jam called
Differz , which compares yaml files and shows the missing keys. You can install it by simply running
gem install differz
If rbenv is used, then you also need to do
rbenv rehash
To show the difference between en.yml and de.yml, you need to run this line in the console:
differz show en.yml de.yml
For example, I launched this application on the popular activeadmin project, which was translated into many languages. Here is the result of a comparison between en.yml and de.yml:

The plans were to enable the user to fill in all the missing keys directly from the console. For this, the not yet written edit command will serve.