Verificações e comandos extras para i18n no Rails

Dicas - 08/Nov/2020 - por João Almeida

A gem rails-i18n foi incorporada ao Rails desde a versão 2.2 do framework e já oferece ótimos recursos para tradução e localização. Com poucos arquivos e linhas modificados é possível traduzir models e seus respectivos formulários, ajustar moedas e datas para formatos diferentes do inglês americano e até encontrar traduções prontas para gems populares como o Devise.

De toda forma, durante a construção, evolução e, especialmente, manutenção de um projeto que utiliza do i18n, você vai encontrar pequenos problemas que podem tomar um tempo razoável. Não existe um mecanismo para prever a ausência de traduções, assim como traduções não utilizadas também podem passar despercebidas.

Por estes motivos, navegando pela categoria i18n do RubyToolbox você encontra algumas gems que oferecem funções extras para a Rails i18n. Dentre estas gems destacamos a i18n tasks.

Para instalar a gem basta adicionar em seu Gemfile:

gem 'i18n-tasks', '~> 0.9.31'

E em seguida adicionar o arquivo i18n-tasks.yml em sua pasta config, utilizando como referência o arquivo disponibilizado na documentação da gem. Neste arquivo yaml é preciso fazer alguns ajustes. Além de substituir o base_locale para “pt-BR” (ou para outro idioma que você esteja utilizando), é preciso ficar atento ao atributo read dentro de data. Por padrão a gem vai procurar somente por arquivos que terminem com .pt-BR.yml, o que pode ser um problema de acordo com seu projeto. Uma sugestão, caso você utilize somente um idioma é alterar este atributo para: config/locales/**/*.yml.

Com isto você já pode executar os comandos oferecidos pela gem. Em destaque:

bundle exec i18n-tasks health

Que vai produzir um relatório completo com detalhes dos seus arquivos de tradução e da ausência de traduções. Existem também comandos para adicionar traduções ausentes bundle exec i18n-tasks add-missing (inclusive com a possibilidade de uso do Google Translate) e bundle exec i18n remove-unused para remover chaves não utilizadas. Mas recomendamos que você os utilize somente após fazer testes e garantir que está confortável com a gem.

Referências

Foto de perfil do autor
João Almeida

Dev e instrutor na Campus Code