Pergunta

referindo-se a

[1] Este Trilhos De Internacionalização:i18n olhar para cima, com aninhados localidades de diretórios

[2] http://guides.rubyonrails.org/i18n.html#organization-of-locale-files

Em que os trilhos de guia para mostrar como você pode estruturar-lo, mas ele corta depois.Ele não mencionou nada sobre como olhar para cima, com o dado estrutura de arquivo

Então eu queria saber se há qualquer forma de usar lazy olhar com a estrutura do arquivo

considere os seguintes diretórios

config/locales             app/views          

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

config/aplicação.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 

Existe alguma maneira que eu possa fazer isso ?ou nada perto do que ??

Em views/frutas/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

Eu sei que o fato de que o código a seguir irá funcionar, mas desde que eu estou na apple diretório, deve haver uma maneira de usar o preguiçoso olhar para a chave única.

Em views/frutas/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 

Eu acho que se isso é possível.Ele pode minimizar chaves duplicadas e se precisamos extra alias para ser adicionado, podemos adicioná-lo quando é necessário, pois acredito que a maioria das equipe de tradução cobrar por palavras

Foi útil?

Solução

Eu descobri que os trilhos seria, na verdade, puxa todos os .yml arquivo selecionado aninhadas nível e combiná-los a um, mas que final .yml que acontece sob o capô e algo que não podemos ver (pelo menos eu não conseguia encontrar uma maneira de vê-lo);Em adicional, o .yml nome não importa, enquanto .yml dentro é estruturado e Preguiçoso procurar iria trabalhar.

No final eu fiz organizar a localidades como o seguinte maneira, eu acho que é uma maneira melhor de organizar.

|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"

locales/pt/pt.yml

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

Em views/frutas/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

Por esta convenção

  1. A chave com o "." aka Preguiçoso olhar este que indicam que .yml é em
  2. A chave com o nome do arquivo na frente mostram que a chave compartilhada, bem como sua localização
  3. A chave com um monte de repetir nas pastas pode ir em repeat_key e aqueles que estão presença no pt/pt.yml

Outras dicas

@AirWick219.

Se você gostaria de usar lazy pesquisa, eu acho que você precisa para preparar o arquivo config/locales/views/fruits/apple/en.yml.

Se você deseja chave compartilhada dentro da pasta, que tal adicionar algo como isso, mas é um pouco redundante.

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

en:
  shared:
    fruits:
      produce: "Produce" 

= t('shared.fruits.produce')

Ou desistir de usar lazy pesquisa :(

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top