質問

[編集]
これは古くなっています。以下で説明するように、翻訳はもう行われません
[/編集]
Magentoの1では、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は次のようになります /アプリ/コード/Magentoの/翻訳/ビュー/ベース/テンプレート/翻訳。phtml

このブロックを指す /app/code/Magento/Translation/Block/Js。php

これはdataproviderとしてこれを持っています /app/code/Magento/Translation/Model/Js/DataProvider。php

したがって、依存関係を独自のdataproviderに変更するか、これを傍受して独自の翻訳を追加するか、独自のdataproviderでこのタイプの独自のブロックを追加できます。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top