angularjs - angular-translate - 同一个翻译键中的变量和插值
问题描述
我可以在同一个翻译键中有一个变量和一个插值吗?
像这样的东西:
"notice" : "{{subject}} {RES, select, is{is} are{are} other{are}}",
在网络浏览器控制台上给我错误:
对象 { 消息:“预期 [ \t\n\r] 或 [0-9a-zA-Z$_] 但找到了 \"{\"。”,预期:(8) […],找到:“{” ,位置:{…},名称:“SyntaxError”,堆栈:“”}
当 {{subject}} 被删除时,它可以工作。
提前感谢您的帮助。
解决方案
如果您尝试将 angular-translate 复数插值消息格式与普通变量插值结合使用,则可以采用不同的方法。从文档:
缺点
实际上,我们能够使用 MessageFormat 作为我们的插值引擎非常酷。不幸的是,当用 angular-translate 的默认插值替换 MessageFormat 插值时,出现了一个大问题。看看下面的代码:你发现有什么不同吗?
{ "DEFAULT_INTERPOLATION": "This is a translation that uses default interpolation with a dynamic value: {{value}}", "MF_INTERPOLATION": "This is a translation that uses MessageFormat interpolation with a dynamic value: {value}" }
确切地。MessageFormat 对其插值使用不同的语法。这意味着,当使用 MessageFormat 插值时,您必须检查所有翻译,检查它们是否使用任何类型的变量替换并更新它们以匹配正确的插值语法。这不是一件很酷的事情。
推荐阅读
- git - 删除通过将名称更改为另一个提交而创建的提交
- android - 房间迁移添加列的值取决于现有的
- multithreading - 如何从另一个使线程启动 GUI 的应用程序更新 TextArea?
- javascript - 为什么我的变量在更改另一个变量的显示后变得未定义?
- css - 使用 Bootstrap col-md-4 网格,但它会中断
- php - 使用另一个多维关联数组对一个多维关联数组中的值进行计数或求和
- javascript - 在jQuery中动态选择一个特定的复选框
- android - 如何用按钮和文本实现动态线性布局?
- java - 解析文本和编译规则,应用于验证输入 XML 文件
- mysql - 尝试通过触发器(插入时)插入多行会导致错误