Как приумножить имя человека-атрибута с Rails 5 и I18n? - PullRequest
0 голосов
/ 06 сентября 2018

Я хочу перевести и приписать имя атрибута в моем приложении.

Итак, для моего атрибута api_key у меня есть перевод "Clef API".

Я делаю имя атрибута на Mymodel.human_attribute_name(:api_key).pluralize(2) и получаю в результате: "Clef APIs"

Но по-французски множественное число для "Clef API" - это "Clefs API"

Итак, я попытался дать множественные переводы в моем YML, но он не работает, и я все еще получаю перевод для «One», множественного числа с «s» в конце.

fr.yml:

activerecord:
  attributes:
    mymodel:
      api_key:
        one: "Clef API"
        other: "Clefs API"  

Могу ли я получить Mymodel.human_attribute_name(:api_key).pluralize(2), чтобы вернуть "Clefs API"?

Если нет, то как я могу перевести и приумножить имя моего атрибута?

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Вы можете добавить индивидуальные множественные слова в Инфлекторы в config/initializers/inflections.rb. Вы можете увидеть пример кода ниже:

ActiveSupport::Inflector.inflections(:fr) do |inflect|
  inflect.irregular 'Clef API', 'Clefs API'
end
0 голосов
/ 06 сентября 2018

Сразу после публикации моего вопроса я решил проверить документ на подсказку human_attribute_name . И это решило мою проблему ...

Оказывается human_attribute_name обрабатывает множественное число напрямую. Он принимает хэш options с ключом :count, который запускает множественное число, как и другие методы I18n.

Итак, это так же просто, как сделать Mymodel.human_attribute_name(:api_key, count: 2)

...