Magento 2の翻訳が機能しない


10

チェックアウトページのテキストを翻訳しようとしています。

「提供された郵便番号は無効のようです。」

ただし、次のものを追加しfrontend/..theme../Magento_Checkout/i18n/en_US.csvて再デプロイすると、翻訳がありません。

"提供された郵便番号は無効のようです。"、 "テスト。"

キャッシュもクリアしました。何が悪いのですか?


私の更新された答えを確認してください。私は今あなたのために働いていると思います。
Suresh Chikani

回答:


15

ディレクトリを作成する app/i18n/Vendorname/en_US

コマンドを発行:

bin/magento i18n:collect-phrases --output "app/i18n/Vendorname/en_US/en_US.csv" --magentoこれにより、すべての翻訳可能なフレーズがcsvファイルに収集され、指定されたパスに配置されます。要件に従って、準備ができたらコマンドを発行して、csvファイルに変更を加えます。

bin/magento i18n:pack app/i18n/Vendorname/en_US/en_US.csv -d en_US

これにより、ファイルから翻訳がデプロイされます。

キャッシュなどをクリアすると、変更が表示されます。


これは有望に見えます。...それは言語パッケージが正常に保存されたと言うが、翻訳はまだそこではありません
ケーキ

collect-phrasesコマンドをもう一度実行すると、翻訳は元の状態に戻ります。なぜ節約しないのですか?
2016年

これは正常な動作です。フレーズを再収集すると、Magentoがすべてのデフォルトフレーズを再収集したため、変更が上書きされます。プロセスは、フレーズを収集し、変更を加えて展開することです。展開したら、関連するモジュールに移動して、[カートに追加]から[バッグに追加]を変更したとします。vendor/ module-catalog / i18n / en_USに移動できます。 csvで変更を探します。これを再テストすると、正常に機能します。変換中の2番目のインスタンスを変更し、キャッシュを適切にクリアしていることを確認してください。静的コンテンツのデプロイをもう一度試すこともできます。
Devtype 2016年

誠にありがとうございます。ただし、一部の翻訳は通じません。「例:」の翻訳と「必須フィールド」は翻訳されません。どうして?
2016年

問題が見つかりました。私はphp bin / magento setup:upgradeする必要がありました。その後、私のサイトはめちゃくちゃになりましたが、テーマを提供することで修正されました。これがうまくいった理由はわかりません。ありがとう
ケーキ

4

翻訳で書かれた文章のみ変更できます

お気に入り : $this->__("Sample Taxt");

提案されたテキストは翻訳で書かれていないため、翻訳で変更することはできません。

それを変更したい場合は、次の場所にあるJSファイルで見つけることができます。

vendor/magento/module-checkout/view/frontend/web/js/model/shipping-rates-validator.js

注:テーマでJSファイルを上書きする必要があります。

pub / static / *を削除します

コマンドを実行:

php bin/magento setup:static-content:deploy 

php bin/magento cache:clean

ブラウザのキャッシュを削除します。


私はこれを試してみましたが、なぜかうまくいきませんでした。
2016年

そのファイルをコピーして翻訳を変更し、app / design / frontend / <vendor> / <theme> / Magento_Checkout / web / js / modelに配置して、キャッシュを再デプロイしてクリーンアップしました。しかし、変化なし..
2016年

私の更新された答えを確認してください。私は今あなたのために働いていると思います。
Suresh Chikani

これは実際に機能しました。ただし、Devtypeが提供するソリューションは、この場合、私のニーズにより適しています。助けてくれてありがとう!:)
2016年

1

私のMagento 2のWebサイトでも同じ問題があり、それを修正する方法をあらゆる種類の方法で試しましたが、私にとって有効なのは-

  1. に行く /pub/static/frontend/<theme>/<theme>/<language for example pl_PL>

  2. それを見つけjs-translation.jsonて削除します(念のためにコピーを作成してください!)

  3. magentoルートフォルダーに戻って実行します。 php bin/magento setup:static-content:deploy pl_PL

  4. 次に実行します php bin/magento cache:flush

それでおしまい。/pub/static/frontend/<theme>/<theme>/<language for example pl_PL>フォルダに戻ると、js-translation.json再び生成されていることに注意してください。

この問題が発生するのは、静的デプロイを実行すると、magentoがjs-translation.jsonファイルを生成してすべての翻訳をこの1つのファイルに挿入し、ページが読み込まれるたびにそれを呼び出すためです。したがって、すでに生成されていて通常は空の場合、新しい情報で上書きすることはできません。それを削除して再生成すると、問題が解決します。

これが誰かを助けることを願っています。


こんにちは、@ Pinky_Pです。私の場合、js-translation.jsonが期待どおりの翻訳で更新されています。ただし、フロントエンドには表示されません。この問題の解決を手伝っていただけませんか。
Ramya

0

aリマインダー...

Magentoは一部の翻訳データをブラウザーのストレージに保存します。

Magentoの内部キャッシュに加えて、ブラウザーのストレージアイテムをクリーンアップする必要がある場合があります。

ここに画像の説明を入力してください

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