문제

참조

[1] 이 레일즈 국제화:i18n은 중첩된 로케일 디렉토리를 조회합니다.

[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 

구성/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 

이것이 가능하다면라고 생각합니다.중복 키를 최소화할 수 있으며 별칭을 추가해야 하는 경우 대부분의 번역 팀이 단어당 비용을 청구한다고 믿기 때문에 필요할 때 추가할 수 있습니다.

도움이 되었습니까?

해결책

RAILS가 실제로 선택한 중첩 된 레벨의 모든. 흑백 파일을 끌어 당겨서 하나씩 결합하지만 우리가 볼 수없는 것에 일어나는 마지막. 니즘은 (적어도 내가 couldn 't 그것을 볼 수있는 방법을 찾는다);추가로 .yml 이름은 내부의 .yml가 구조화되고 게으른 모양이 일어나는 한 중요한 것은 중요하지 않습니다.

결국 나는 다음과 같은 로케일을 조직했는데, 나는 그것이 그것을 정리하는 더 좋은 방법이라고 생각합니다.

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

.mll

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. "."키일명 게으른 모양이
  2. 에 있는지 나타냅니다.
  3. 앞에있는 파일 이름이있는 키는 공유 키뿐만 아니라 위치
  4. 폴더에 걸쳐 많은 반복이있는 열쇠는 requey_key로 이동할 수 있으며 en / en.yml
  5. 에 존재합니다.

다른 팁

@에어윅219.

Lazy Lookup을 사용하시려면 파일을 준비하셔야 할 것 같습니다 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