我可以在同一个翻译键中包含变量和插值吗?
类似这样的东西:
"notice" : "{{subject}} {RES, select, is{is} are{are} other{are}}",
在网络浏览器控制台上给了我错误:
对象{消息:“预期[\ t \ n \ r]或[0-9a-zA-Z $ _],但\“ {\” 找到。”,期望值:(8)[…],找到:“ {”,位置:{…},名称: “ SyntaxError”,堆栈:“”}
删除{{subject}}后,它就会起作用。
预先感谢您的帮助。
答案 0 :(得分:1)
如果您尝试结合使用角平移多元插值消息格式和普通变量插值,则可以采用其他方法。来自docs:
缺点
实际上,我们能够使用MessageFormat作为我们的产品非常酷 插值引擎。不幸的是,当替换MessageFormat时 使用angular-translate的默认插值进行插值 一个大问题。看一下下面的代码:您看到了吗 差异?
{ "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插值时,您必须摇摆 在所有翻译中,检查它们是否使用任何类型的变量 替换并更新它们以匹配正确的插值语法。 这不是一件很酷的事情。