【问题标题】:data-i18n doesn't display symbolsdata-i18n 不显示符号
【发布时间】:2018-08-27 23:25:11
【问题描述】:

我创建了一个按钮。必须随时更改其上的语言。我编写了以下代码来完成任务

var $button = $( '<a class="btn">' )
 .attr( 'href', '#' ).prepend(
 '<span class="fa fa-plus"></span>', ' ' )
 .attr( 'data-i18n', 'text' )
 .tooltip( {
    title: 'change item'
   } );

这成功改变了语言,但它不显示图标“+”。

var $button = $( '<a class="btn">' )
   .text( 'sample text' )
   .append( '<span data-i18n="text">sample text</span>' )
   .attr( 'href', '#' ).prepend(
   '<span class="fa fa-plus"></span>', ' ' )
    .tooltip( {
        title: 'change item'
    } );

第二个案例工作并正确显示它,包括语言的变化。但我无法理解第一个代码示例中的错误。谁能帮我吗?提前致谢

【问题讨论】:

    标签: jquery i18next


    【解决方案1】:

    我猜你使用 jquery-i18next:

    &lt;a ... data-i18n="text"&gt;&lt;span class="fa fa-plus"&gt;&lt;/span&gt;hello&lt;/a&gt; 会将其内容替换为关键文本给出的翻译。所以翻译后你会得到:不管翻译是什么`

    像你在第二个示例中所做的那样断言只有内部跨度被替换,而不是锚标记的完整内容。

    但您也可以执行 &lt;a ... data-i18n="[prepend]text"&gt;...: https://github.com/i18next/jquery-i18next#prepend-content 之类的操作来达到同样的效果。

    【讨论】:

      【解决方案2】:

      您的代码语法无效。在第二个 attr 函数内的 text 变量之后,您有一个额外的 '

      您的代码:

      var $button = $( '<a class="btn">' )
       .attr( 'href', '#' ).prepend(
       '<span class="fa fa-plus"></span>', ' ' )
       .attr( 'data-i18n', text' )
       .tooltip( {
          title: 'change item'
       });
      

      有效代码:

      var $button = $( '<a class="btn">' )
       .attr( 'href', '#' ).prepend(
       '<span class="fa fa-plus"></span>', ' ' )
       .attr( 'data-i18n', text )
       .tooltip( {
          title: 'change item'
       });
      

      【讨论】:

      • 感谢@Alex Gray 的回复,很抱歉,这实际上是我在这里犯的一个拼写错误。我将更新问题。
      猜你喜欢
      • 1970-01-01
      • 2013-10-08
      • 1970-01-01
      • 2017-11-11
      • 2019-05-07
      • 2012-04-05
      • 2020-10-13
      • 2015-09-12
      • 2018-11-16
      相关资源
      最近更新 更多