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

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

我正在使用 angular-translate在我的项目中。 我的 View 中有多个字符串需要翻译,例如

<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 不接受两个同名的属性。 是否可以使用 angular-translate 翻译这些文本并保留州名?

最佳答案

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

您不能做的是为 user.detailsuser.details.edit 都创建一个记录。

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

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

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

或者你可以做相反的事情并拥有 user.DETAILSuser.details.EDIT

关于javascript - 来自同一来源的 Angular 翻译字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37721954/

相关文章:

javascript - 使用 "getElementById"检索多个元素?

javascript - 使用 Javascript 将文本字段添加到 HTML 表单时出错

javascript - angularjs - ui.router 没有立即渲染 ui-view

angularjs - req.body undefined 并使用 angular 进行 express api 测试

angularjs - 使用 ui-router 在父 View 中注入(inject)模板

angular - 为子组件启用 candeactivate

javascript - 使用 jquery 进行时间跟踪

javascript - 使用 JavaScript 循环遍历 ID 中包含数字的元素

javascript - Angular.js : Is . value() 设置应用程序范围常量的正确方法以及如何在 Controller 中检索它

javascript - 限制用户可以输入的 JavaScript