2012-11-01 2 views
1

Ember-I18n을 사용하는 국제화 된 Ember.js 앱을 만들고 있습니다. 이것은 대부분의 시나리오에서 잘 작동하지만 지금은 언어 문자열을 고려 : {{link}}이 필요Handlebars.js의 변수 템플릿

'To do some action {{link}}' 

일부 링크로 대체 될 수 있습니다. {{link}}의 위치는 언어마다 다를 수 있기 때문에 번역 문자열을 분해 할 수 없습니다. 그래서 대신 거기에 링크를 얻을 수있는 방법을 찾아야합니다. 이는 물론 번역에 다른 템플릿, 같은 것입니다 : 내가 thusfar 몇 가지를 시도했습니다

<a {{action someAction}}>{{t click_here}}</a> 

: 사용자 정의 블록 도우미를 사용하여 링크에 대한 사용자 정의보기를 생성하는 단계; 그러나 나는 아직 일할 수있는 것을 얻지 못했다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 즉, 렌더링 된 템플릿을 Ember.js의 다른 템플릿에 삽입하는 변수로 어떻게 가져올 수 있습니까?

var view = Em.View.create({ 
    templateName: "mytemplate", 
    link: "http://emberjs.com", 
}); 

2 :이 같은 템플릿의 뷰를 생성합니다)

1 :

+0

가 가능한가 ? – Jasper

+0

현재 비슷한 시나리오의 앱을 만들고 있습니다. 별도의 파일에 모든 템플릿을 만든 다음 각 템플릿의 핸들 막대 마크 업을 리소스 파일의 키에 수동으로 복사합니다 (.net을 사용하고 있으므로 지원하는 각 언어에 대한 .resx 파일이 있습니다.) .yml 파일, 맞지?). 내가 변경할 때마다 전체 템플릿을 리소스 키에 수동으로 복사해야하고 공백을 모두 처리해야하기 때문에 이동하는 가장 좋은 방법은 아닙니다. 그런 다음 런타임에 템플릿 소스를'Ember.TEMPLATES'에 주입합니다. 다시 한번 말하지만, 최선의 방법은 아닐 수도 있습니다. 그냥 던지십시오. – MilkyWayJoe

+0

@ Jasper 그럴 수도 있습니다. 그러나 이미 충분하지 않은 몇 가지 시나리오를 생각할 수 있습니다. 하나 이상의 링크가 있다고 상상해보십시오. _might_ 심지어 정확하지 않음). 이 문제를 해결할 수있는 방법은 아마도 그런 예외적 인 경우가 아니기를 바랄 수 있지만 더 나은 접근 방법이되기를 바랍니다. –

답변

0

나는 내 응용 프로그램을 번역하는 해당 라이브러리를 사용하지 않는,하지만 난 그 문서에서 이해,이 작동하지 않을 수 있습니다

<a {{action someAction}}>{{t click_here linkBinding="view.link"}}</a> 

그 번역 문자열이 "click_here"키에 가정하면) 템플릿에 엠버 - 국제화가 제공하는 바인딩을 사용합니다.

상세 정보 : 당신은 고정 된 위치에서 링크를 가지고 있지만,이 하나가 비어있을 수있는 "후 텍스트", "텍스트 앞에"언어가 그렇게 요구하는 경우가하는 https://github.com/jamesarosen/ember-i18n#bind-interpolated-values

+0

그러나 상황에서 중첩 된 번역이 있음을 의미합니다. 즉click_here 번역 안의 템플릿/번역. 이것은 바인딩 메커니즘으로 해결되지 않습니다. –