【问题标题】:Using translation with jquery in prestashop在 prestashop 中使用带有 jquery 的翻译
【发布时间】:2015-05-12 09:27:06
【问题描述】:

当我在 smarty 文件中使用 jQuery 时,我正在尝试翻译一些术语。 这是我的 jQuery 代码:

else {
    $("#message").val("{l s='Please try to be clear.'}");

这个短语在我的网页中与{l s='Please try to be clear.'} 完全一样,并且没有考虑翻译模式。

我知道当我在 javascript 代码中时可以使用 js=1,但它对我也不起作用。 有谁知道如何在 jQuery 函数中使用翻译?

【问题讨论】:

    标签: javascript jquery smarty prestashop


    【解决方案1】:

    在 JS 块周围使用{literal} 标签是一种很好的做法:

    {literal}
    <script>
    /...
    </script>
    {/literal}
    

    但是当你需要在 JS 块中插入一些 smarty 时,它就不起作用了; 要使其正常工作,您必须关闭并重新打开标签(看起来有点像 hack :)

    {literal}
    <script>
       var txt = '{/literal}{l s='Some text'}{literal}'
    </script>
    {/literal}
    

    您还可以在 PrestaShop 模板中找到;

    {strip}
    {addJsDefL name=translation_6}{l s='Not found' js=1}{/addJsDefL}
    {/strip}
    

    哪个会创建

    var translation_6 = 'Not found';
    

    在你的身体里,你可以使用哪个

    【讨论】:

    • 有个小问题:翻译时没有考虑特殊字符
    • 这可能是一个单独的问题。什么样的人物?特殊字符可能有问题,是的,在翻译中应该避免使用它们
    • 像 'é' 或 'ç' 当我翻译时它被编码但仅适用于 javascript 中包含的消息,其他翻译适用于特殊字符
    【解决方案2】:

    也许将您的 JS 脚本包含在 literal 中会有所帮助:

    {literal}
    
    //JS code
    
    {/literal}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2018-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      相关资源
      最近更新 更多