Magento2ローカライズJavascript


16

同様の質問がすでにここで尋ねられました:Magento 2 javascript text translations、Magentoはベータ版でこの翻訳技術を更新しました。

Javascriptで使用される翻訳を追加または更新するにはどうすればよいですか?

Magentoが静的フォルダーに「js-translation.json」というファイルを作成することがわかりました。このファイルを直接編集すると、翻訳が更新されていることがわかります。しかし、このファイルはどこで作成されますか?また、Magentoが生成時にjs-translation.jsonに自動的に追加するように翻訳を追加するにはどうすればよいですか?

更新

この質問に対する正しい答えはまだ出ていませんが、Mage2.PROは正しい方向を示してくれましたが、完全な答えではありません。私のjs-translation.jsonは、生成されるとまだ空です。

たとえば、[カートに追加]ボタンを翻訳したいです。このボタンには、カートに追加、追加...、追加...の3つの状態があります。これらの単語を翻訳するにはどうすればよいですか?別の例として、「ショッピングカートに商品がありません。」ミニカート内のテキスト。これらのフレーズはすべてjs-translation.jsonから翻訳する必要があると思いますが、これらのフレーズがどこに追加されてこれらのファイルがこれらの翻訳で埋められるのでしょうか?


私はこれについて100%確信していませんが、mage2.proによって提供される答えは正しいものだと思います。たとえば、jsファイルのいずれ$.mage.__('Add To Cart')かにこれがある場合、setup:static-content:deployコマンドによって自動的に取得されます。唯一の問題は、ロケールファイル内にテキストの別の翻訳を含める必要があることです。翻訳として同じテキストを持つテキストは、理由なくサイズを大きくしないためにjsonファイルに追加されません。
マリウス

回答:


10

あなたがすでにそれを理解したかどうかはわかりませんが、私はとにかく答えると思いました..

他の答えは正しい方向に向かっていると思います。

既に翻訳がインストールされていると仮定してください。そうでない場合:

bin/magento i18n:pack -m replace -d source_nl_NL.csv . nl_NL

そのため、まず、キャッシュをクリアしてください(他のユーザーも同様に推奨します):

rm -rf var/cache var/generation var/page_cache var/view_preprocessed

次に、pub / staticフォルダーをクリアしてください:

rm -rf pub/static/*/

次に、静的コンテンツを再生成します:(他の回答のlangcodeが見つかりませんでした。)

bin/magento setup:static-content:deploy nl_NL -必ず言語コードを追加してください

次に、作成されたjs-translation.jsonがあるかどうかを確認します。

find pub/static/ -name "js-translation.json"

ほとんどの場合、js-translation.jsonファイルのリストを取得します。これらのファイルを確認し、空であるか、などが含まれている場合は削除してください[]


1
ティモンのおかげで、これがまさに道です!私は少し前に自分でこれを理解しましたが、まだここに答えを投稿しませんでした。これは質問への素晴らしい追加です。
シルバン

@Silvan私のインストールでは、ファイルjs-translation.jsonには私のロケールで既にいくつかのフレーズが翻訳されていますが、まだ翻訳されていないフレーズがあります。このファイルに手動で追加する必要がありますか?
ルイスガルシア

js-translationファイルは、次に静的ファイルをデプロイするときに上書きされるため、これはお勧めしません。その場合、デプロイを行うたびにフレーズを手動で追加する必要があります。これらのフレーズは言語パックに含まれていますか?
シルバン

1

.csvファイルに翻訳を追加してから、次の手順が実行されることを確認してください。

  1. キャッシュストレージをフラッシュする必要があります(基本的にvar / cacheおよびvar / view_preprocessedフォルダーはクリアする必要があります)
  2. 静的ファイルを再デプロイする必要があります(pub / static内のすべてのフォルダーを削除し、bin / magento setup:static-content:deployを実行します)

0

すべてのキャッシュとdelele pub / staticフォルダーのコンテンツを削除します。

ルートディレクトリに移動し、以下のコマンドを実行します。

php bin / magento setup:static-content:deploy

問題が解決されることを願っています。


ArkadiyChはまた、キャッシュを削除して静的ファイルを再デプロイするように私に言ったが、残念ながらこれは私の問題を解決しない。
シルバン

0

phtmlのフレーズが完璧に機能したとき、「$。mage .__( 'XXX')のフレーズを翻訳できません」などの同じ問題がありました。そのため、ソリューションは非常にシンプルでした。

$ t(...)および$ .mageはファイル* .jsのみを分析します

その結果、js-translation辞書に分類されません。

そのため、phtmlファイルでセクションスクリプトをレンダリングする場合、すでに翻訳されたフレーズをwrappersで直接挿入する必要があります__('Translated phrase')

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.