Magento2javascript文本翻译
-
12-12-2019 - |
题
[编辑]
这已经过时了。翻译不再做,如下所述
[/编辑]
在Magento1中,javascript中需要的可翻译文本被添加到 jstranslate.xml
文件在 etc
一个模块的文件夹和他们被自动添加到翻译js对象。
如何在Magento2中添加要在javascript中使用的可翻译文本?
我发现如何在Magento2中使用文本翻译,但不知道如何添加新的。
以下是如何使用它们的示例:
alert($.mage.__('Text to translate here'));
解决方案
好的。我找到了一个解决方案,但对我来说很难看。
在页面的布局句柄我需要我添加这个:
<referenceContainer name="after.body.start">
<block class="Magento\Framework\View\Element\Template" name="some-name-here" template="[Namespace]_[Module]::translate.phtml"/>
</referenceContainer>
然后创建模板 translate.phtml
在 [Namespace]/[Module]/view/[frontend|adminhtml]/templates
有了这个内容:
<?php
$_data = array(
'Text one to translate' => __('Text one to translate'),
'Text two to translate' => __('Text two to translate'),
);
?>
<script type="text/javascript">
require(["jquery","mage/translate"], function($){
$.mage.translate.add(<?php echo Zend_Json::encode($_data) ?>)
});
</script>
我真的希望有另一种方法可以做到这一点。
其他提示
前端翻译的默认src似乎是 /app/code/Magento/Translation/view/base/templates/translate。phtml,phtml
指向这个块 /app/code/Magento/Translation/Block/Js。php的
它有这个作为dataprovider /app/code/Magento/Translation/Model/Js/DataProvider。php的
因此,您可以将依赖项更改为自己的dataprovider,或者拦截此依赖项以添加自己的翻译,或者使用自己的dataprovider添加此类型的自己的块。