2016-08-02 5 views
0

После кодирования приложения на английском языке я обновил файл языка (pt-BR.yml), «config/application.rb» (установив по умолчанию значение pt-BR) и «inflections.rb» в порядке имеют сообщения об ошибках на моем локальном языке.Как предотвратить i18n для множественного использования моделей в Rails?

Однако Rails теперь не находит мою модель, потому что ее логика больше не плюризуется на английском языке.

Есть ли способ предотвратить использование Rails локального языка по умолчанию в моделях и контроллерах? Или есть лучшая практика кодирования? Спасибо.

ответ

0

Вы можете сконфигурировать ваш inflections.rb вместо преобразования lang по умолчанию. Вы можете сделать это следующим образом:

ActiveSupport::Inflector.inflections(:es) do |inflect| 


inflect.plural(/$/, 's') 
    inflect.plural(/([^aeéiou])$/i, '\1es') 
    inflect.plural(/([aeiou]s)$/i, '\1') 
    inflect.plural(/z$/i, 'ces') 
    inflect.plural(/á([sn])$/i, 'a\1es') 
    inflect.plural(/é([sn])$/i, 'e\1es') 
    inflect.plural(/í([sn])$/i, 'i\1es') 
    inflect.plural(/ó([sn])$/i, 'o\1es') 
    inflect.plural(/ú([sn])$/i, 'u\1es') 

    inflect.singular(/s$/, '') 
    inflect.singular(/es$/, '') 

    inflect.irregular('el', 'los') 
end 

код, взятый из https://davidcel.is/posts/edge-rails-a-multilingual-inflector/

Это выглядит как его драгоценный камень также поддерживает PT-BR https://github.com/davidcelis/inflections. Я лично не пробовал, но он выглядит здоровым.

+0

Большое спасибо! в то время как я до сих пор не знаю точно, как выбрать язык модели, это помогло мне иметь перегибы на нескольких языках. –