Angular翻译来自同一来源的字符串

时间:2016-06-09 09:27:50

标签: javascript angularjs angular-ui-router translation angular-translate

我在我的项目中使用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"
   },
   ...
}

而不是点ID喜欢写一些文本,这将是user.details翻译, 但我不能因为json不接受两个同名的属性。 是否可以使用角度翻译翻译这些文本并保持状态&#39;名字?

1 个答案:

答案 0 :(得分:2)

您不需要将angular-translate引用与州名相关联。事实上,对于可重复使用的翻译,最好不要这样做。

您不能做的是拥有user.detailsuser.details.edit的记录。

原因是user.details不能同时是字符串和包含属性的对象。

解决此问题的一种方法是使用UPPER_CASE作为包含对象的翻译,使用小写(或camelCase)作为属性名称。

您可以拥有USER.detailsUSER.DETAILS.edit。那些不相互冲突。

或者您可以执行相反操作并拥有user.DETAILSuser.details.EDIT