Вопрос

Ссылаясь на

[1] Это Rails Internationalizations: I18n посмотрите с вложенными катаниями местных мест

[2] Это http://guides.rubyonrails.org /i18n.html#organation-of-locale-files

, в котором руководство по рельсам только показать, как вы можете структурировать его, но после этого он отключается. Не упомянул ничего о том, как посмотреть с заданной структурой файла

Так мне было интересно, есть ли в любом случае использовать ленивый внешний вид с файловой структурой

Рассмотрим следующие каталоги

config/locales             app/views          

|locales                   |views
|-defaults                 |-fruits
|--en.yml                  |--apple 
|--views                   |--banana
|---fruits                 |-meats
|----en.yml                |--chicken
|---meat                   |--beef
|----en.yml 
.

config / application.rb

 config.i18n.load_path += Dir["#{Rails.root.to_s}/config/locales/**/**/*.{rb,yml}"]
.

.yml

locales/views/fruits/en.yml|  locales/views/meats/en.yml
                           |
en:                        |  en:   
  produce: "Produce"       |   meat_section: "Meat Section" <--- shared key within folder
                           |
  apple:                   |   chicken:
    red: "Red"             |     white_meat: "White Meat"
                           |
  banana:                  |   beef: 
    yellow: "Yellow"       |     red_meat: "Red Meat"
.


locales/defaults/en.yml

en:
  repeat_key:
    market: "Market"     <------- shared key across folders 
.

Есть ли способ, которым я могу это сделать? Или что-нибудь близкое к этому ??

в видах / фрукты / Apple.html.haml

= t('.red')                 <------- unique key in apple 
= t('produce')              <------- shared key within fruits folder
= t('repeat_key.maket')     <------- repeat key across fruits and meat folders
.

Я знаю, что следующий код будет работать, но так как я в каталоге Apple, должен быть способ использовать ленивый поиск для уникального ключа.

в видах / фрукты / Apple.html.haml

= t('apple.red')            <------- unique key in apple 
= t('produce')              <------- shared key within fruits folder
= t('repeat_key.maket')     <------- repeat key across fruits and meat folders 
.

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

Это было полезно?

Решение

Я выяснил, что рельсы на самом деле будут вытащить весь файл .yml для выбранного вложенного уровня и объединить их на один, но этот последний .yml, который происходит под капотом и то, что мы не можем видеть (по крайней мере, я не могуt найти способ увидеть его);В дополнительном имени .yml не имеет значения, пока не имеет значения .yml внутри, и ленивый взгляд будет работать.

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

|config
|-locales
|--en
|---en.yml
|---fruits.en.yml
|---meat.en.yml   
.

.yml

locales/en/fruits.en.yml|     locales/en/meats.en.yml
                           |
en:                        |  en:   
  fruits:                  |   meats:
    produce: "Produce"     |     meat_section: "Meat Section" <-shared key within folder
                           |
    apple:                 |     chicken:
      red: "Red"           |       white_meat: "White Meat"
                           |
    banana:                |     beef: 
      yellow: "Yellow"     |       red_meat: "Red Meat"
.

Локальные / en / en.yml

en:
  repeat_key:
    market: "Market"     <------- shared key across folders 
.

в видах / фрукты / Apple.html.haml

= t('.red')                 <------- unique key in apple 
= t('fruits.produce')       <------- shared key within fruits folder
= t('repeat_key.maket')     <------- repeat key across fruits and meat folders
.

настоящей Конвенцией

  1. ключ с "."aka ленивый смотрите это, что указывает на то, какой .yml это в
  2. ключ с именем файла спереди показывает, что общий ключ, а также местоположение
  3. Клавиша с большим количеством повторовных папок может идти под repeat_key, и это наличие в en / en.yml

Другие советы

@ airwick219.

Если вы хотите использовать ленивый поиск, я думаю, вам нужно подготовить файл config/locales/views/fruits/apple/en.yml.

Если вы хотите общий ключ в папке, как насчет добавить что-то вроде этого, хотя это немного избыточно.

config/locales/views/shared/en.yml,

en:
  shared:
    fruits:
      produce: "Produce" 
.

= t('shared.fruits.produce')

или отказаться, чтобы использовать ленивый поиск: (

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top