【问题标题】:Issue with Angular Translate角度翻译问题
【发布时间】:2026-01-31 02:45:01
【问题描述】:

我有一个像下面这样的 span 标签。

<span translate="footer.copyright">Copyright</span>

在我的 Json 文件中,我有如下数据,

"footer": {
      "copyright": "Copyright ©"
    },

它也可以正常工作。但是如果 json 文件没有数据,我想翻译以显示 span 标签之间的任何可用内容,在本例中为版权。但它不采用内容,而是显示空标签。请帮我解决这个问题。

【问题讨论】:

  • 可以提供plunkr吗?
  • 请注意&lt;span translate="footer.copyright"&gt; 是无效的 HTML。请改用&lt;span data-translate="footer.copyright"&gt;
  • @connexo,在这种情况下这无关紧要
  • translate-default 添加到您的标签,reference
  • @connexo:这取决于您使用的 HTML 标准。

标签: javascript json angularjs angular-translate


【解决方案1】:

只需将translate-default 添加到您的标签:

<span translate="footer.copyright" translate-default="Copyright">Copyright</span>

您可以阅读更多here

【讨论】:

    【解决方案2】:

    使用translate-default 代替translate

    所以你的 HTML 看起来像

    <span translate-default="footer.copyright">Copyright</span>
    

    这会回避这里的问题,但你最终会得到看起来像

    的标签
    <ANY translate="missing.id" translate-default="This is some text"></ANY>
    

    在哪里写

    <ANY translate="missing.id">This is some text</ANY> 
    

    看起来更简洁,实际上会显示占位符文本,以防 JS 错误导致 Angular/Angular-Translate 无法正常工作,或者当您直接打开视图模板时。

    注意: 请记住,发生此问题的原始情况是尚未加载翻译文件时,例如由于互联网连接速度慢。所以到那时,Angular Translate 可能还不知道它必须对内容使用 translate-default 属性。只需尝试自定义$missingTranslationHandlerFactory

    【讨论】:

    • &lt;ANY translate="translationKey"&gt;This is some text&lt;/ANY&gt; 是我在我的项目中使用的...有点奇怪,它不适用于 OP...
    • 这只是一个例子。 ANY 表示
      ...等
    • 是的,我也这么认为。我只是说这对 OP 不起作用很奇怪。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签