2013-03-10 3 views
1

Я несколько переводов спрятан в инициализаторе так:Rails: Перевод в Initializer

GROUP_GOVERNANCE_STYLES = [ 
    [I18n.t("constants.group_governance_styles.collective"), 1], 
    [I18n.t("constants.group_governance_styles.electoral_democracy"), 2], 
    [I18n.t("constants.group_governance_styles.dictatorship"), 3] 
] 

В моем файле en.yml у меня есть:

en: 
    constants: 
    group_governance_styles: 
     collective: "collective" 
     electoral_democracy: "electoral democracy" 
     dictatorship: "dictatorship" 

К сожалению, когда я пытаюсь сделать эти переводы в поле зрения, я получаю следующие ошибки:

translation missing: en.constants.group_governance_styles.collective 
translation missing: en.constants.group_governance_styles.electoral_democracy 
translation missing: en.constants.group_governance_styles.dictatorship 

Я также попытался удалить область действия, но e переводы все еще появляются как пропавшие без вести. Есть ли другой способ приблизиться к этому? Возможно, для инициализаторов есть область по умолчанию, о которой я не знаю?

ответ

3

AFAIK, переводы загружаются после инициализаторов. Попробуйте положить его в environment.rb

+0

Это работает! Я не знаю много о environment.rb, но кажется, что это может быть плохая практика, чтобы заполнить его константами, подобными этой. Можно ли загрузить файл, содержащий константы из среды environment.rb? – nullnullnull

+2

Согласен. Я не большой поклонник добавления кода в environment.rb. Вы также можете поместить этот код в отдельный файл (возможно, в папку lib?) И потребовать его в файле environment.rb. – Hesham

+0

Отлично, это делает трюк. – nullnullnull

Смежные вопросы