Magento 2 JavaScriptテキスト翻訳


7

[編集]
これは時代遅れです。以下に説明するように、翻訳はもう行われていません
[/ EDIT]
でMagentoの1ジャバスクリプトに必要な翻訳可能なテキストが中に追加されたjstranslate.xml内のファイルetcモジュールのフォルダと、彼らは自動的に翻訳者のjsオブジェクトに追加されました。
Magento 2のJavaScriptで使用する翻訳可能なテキストを追加するにはどうすればよいですか?
Magento 2でテキスト翻訳を使用する方法を見つけましたが、新しい翻訳を追加する方法がわかりません。

これらの使用例は次のとおりです。

alert($.mage.__('Text to translate here'));

私は同じ問題を抱えています。ベータリリース以降、翻訳スクリプトが変更されていることがわかりました。現在は「js-translation.json」というファイルを参照しています。このファイルは私のテーマの静的ディレクトリにあります。このファイルにデータを追加する方法をすでに理解しましたか?このファイルの翻訳フレーズはどこから来ていますか?
Silvan、2015年

回答:


4

OK。私は解決策を見つけましたが、それは私にとって醜い継ぎ目です。
ページのレイアウトハンドルに、これを追加する必要があります。

<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>

これを行う別の方法があることを本当に願っています。


1

フロントエンドでの翻訳のデフォルトのソースは/app/code/Magento/Translation/view/base/templates/translate.phtmlのよう です

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

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

したがって、依存関係を独自のデータプロバイダーに変更したり、この依存関係をインターセプトして独自の翻訳を追加したり、独自のデータプロバイダーを持つこのタイプの独自のブロックを追加したりできます。


それは私が自分の答えで投稿したものに私を導く正確なファイルです。問題は、にtranslate.phtml関連するものがないことgetTranslatedJsonです。これは単なる「孤立した」phtmlファイルです。\Magento\Framework\View\Element\Templateブロッククラスに簡単に関連付けることができます。効果は同じです。
マリウス

これが未完成のビジネスであり、修正されることを本当に望んでいます。ありがとう。
マリウス

1か月後、2日後にMagento 2に移行しましたが、まだ同じ問題があり、プロジェクト全体は「未完成のビジネス」のように見えます。ドキュメントのギャップ、多くのクラスでのずさんな入力フィルタリングなど、明らかなバグのように見えるもの。安定が完了するまでの何年もの間、何が不思議に思われるでしょう...とにかく、のヒントに感謝し$.mage.translate.addます。言語パッケージ全体の翻訳CSVをこの関数に渡す、醜い回避策を書きました。
Jey DWork
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.