1

내 프로젝트에 angular-translate을 사용하고 있습니다. 내가동일한 소스의 각진 문자열

<ul> 
<li ng-repeat ="title.value as title in vm.states"> 
</ul> 

vm.states처럼 이드 번역처럼 내보기에 여러 문자열을 내 프로젝트의 모든 (추상 제외) 상태를 포함하는 배열입니다. 일부 주이 있습니다 보인다 같은

'user.details' (하지 추상적 인 상태)

'user.details.edit' 그리고 이드 내가 번역 파일에 개체가이 문자열을 번역하고자

user: { 
    details: { 
     edit: "Edit User" 
    }, 
    ... 
} 

이드 대신에 어떤 텍스트를 쓰고 싶습니다. user.details 번역, 하지만 json은 같은 이름을 가진 두 개의 속성을 허용하지 않으므로 위선적입니다. 이 텍스트를 각 이음새가있는 상태로 번역하고 상태 이름을 유지할 수 있습니까?

+0

는 너무 명확하지는 않지만 어쩌면 내가 잘 이해한다면 어떨까요? var item = user.details.edit? user.details.edit : user.details; – Erez

+0

@Erez Id는 'user.details'와'user.details.edit'와 같은 2 개의 문자열을 번역하고 싶습니다. 어떻게 번역하여 .json 파일에 저장합니까? – styopdev

답변

2

angular-translate 참조를 상태 이름과 연결할 필요는 없습니다. 재사용 가능한 번역을 위해서는 그다지 좋지 않습니다.

당신이 할 수없는 일은 user.detailsuser.details.edit에 대한 기록이 있습니다.

이유는 user.details이 문자열과 동시에 속성을 포함하는 개체가 될 수 없기 때문입니다.

이 문제를 해결하는 한 가지 방법은 개체를 포함하는 번역에 UPPER_CASE를 사용하고 속성 이름에는 소문자 (또는 camelCase)를 사용하는 것입니다.

USER.detailsUSER.DETAILS.edit을 가질 수 있습니다. 그것들은 서로 충돌하지 않습니다.

또는 역수를 사용하여 user.DETAILSuser.details.EDIT이 될 수 있습니다.

+0

답장을 보내 주셔서 감사합니다 Martin, 저는 기존 프로젝트에서 일하고 있습니다. 상태를 변경하기 란 정말 어렵습니다. "user"와 같은 것을 쓸 수 있다면 좋을 것입니다 : {details : { "translation": "Details", edit : "편집"}}' – styopdev

+0

또한 트릭을 사용하여 단어가 제대로 작동하지 않습니다. – styopdev