2017-09-11 1 views
5

내 앱에서 많은 번역 문자열에 사용자 이름을 포함해야합니다. 예를 들어 : Hello {{user_name}}! {{user_name}}가 나타납니다 때문에Angular translate provider - 일반적인 변수를 대체 할 수있는 방법이 있습니까?

속성을 설정하는 방법은 {{"TRANSLATE_ID" | translate:{user_name:myUserName}}}

입니다) (사용자 이름 문자열의 이름의 위치가 언어에 의존하기 때문에 번역 문자열의 일부이어야한다) 100 개 이상의 번역 문자열에서 user_name 매개 변수를 여러 번 보내지 않으려합니다. 이 매개 변수를 하나만 설정하는 방법이 필요합니다.

translateProvider이 문자열을 설정할 때 user_name이 (서버에서 가져온) 비동기 적으로 설정되고 사용할 수 없으므로 config의 {{user_name}} 문자열을 바꿀 수 없습니다.

감사

답변

0

AngularTranslate 당신이 약속을 통해 HTML 자체에서 또는 컨트롤러 내부 태그를 변환 할 수 있습니다. 당신이 원하는 것을하기위한 우아한 방법은 컨트롤러에서 사용자가 원하는 방식으로 변환을 처리하는 메소드/함수를 작성한 다음 사용자 이름을 매개 변수로 전달하는 HTML에서이 메소드/함수를 호출하는 것입니다.

예를 들어 "Hello, USERNAME!"과 같이 JSON 번역 파일의 사용자 이름을 "USERNAME"으로 지정하고 컨트롤러에서 AngularTranslate를 사용하여 만든 메서드로 번역 한 다음 문자열 바꾸기를 수행하여 USERNAME method 매개 변수 (실제 사용자 이름)에 대해이 문자열을 메서드의 반환 값으로 사용합니다.이 값은 html로 호출됩니다.

희망이 도움이됩니다.

관련 문제