[编辑]
这已经过时了。翻译不再做,如下所述
[/编辑]
在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添加此类型的自己的块。

许可以下: CC-BY-SA归因
scroll top