指的是
[1]这Rails Internationalization: i18n look up with nested locales directories
[2]这http://guides.rubyonrails.org/i18n.html#organization-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
有什么方法可以做到这一点吗?或者接近那个?
在views / fruits / 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目录中,必须有一种方法可以使用懒惰查找唯一键。
在views / fruits / 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
我认为如果可行的话。它可以最小化重复键,如果我们需要添加额外的别名,我们可以在必要时添加它,因为我相信大多数翻译团队每个单词收费
答案 0 :(得分:1)
我发现rails实际上会将所有.yml文件拉到一个选定的嵌套级别并将它们合并到一个但最后的.yml会发生在引擎盖下以及我们看不到的东西(至少我不能'找到一种方法来看它);另外,.yml名称无关紧要,只要.yml内部结构化并且Lazy查找就可以工作。
最后,我按照以下方式组织了区域设置,我认为这是组织它的更好方法。
|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
在views / fruits / 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 :(得分:0)
@ AirWick219。
如果您想使用延迟查找,我认为您需要准备文件config/locales/views/fruits/apple/en.yml
。
如果你想要文件夹中的共享密钥,那么如何添加这样的东西,虽然它有点多余。
config/locales/views/shared/en.yml
,
en:
shared:
fruits:
produce: "Produce"
= t('shared.fruits.produce')
或者放弃使用延迟查找:(