https://poedit.net/
を参考。
まずは元々の翻訳データ元ファイル(.po)を子テーマのディレクトリにコピー
まずは、ウェルカートプラグインの翻訳データ、poファイルを任意のディレクトリにコピーします。
今回の例では、子テーマフォルダのlanguageフォルダにコピーしました。
コピーするフォルダは、wordpressのプラグインやテーマ等のアップデートでデータが消えてしまわないような場所が好ましいかと思います。
最終的にファイルの場所をfunctions.phpから指定するので、最悪どこだっていいです。
わかりやすく管理しやすくかつアップデートの影響を受けない場所なら。
必要な翻訳だけを自作で
この編集したpoファイルに記述されている翻訳が反映され、そこに無いものが、オリジナルの翻訳(元のデータ)が反映されることになります。
翻訳データがアップデートされることは稀かもしれませんが、アップデートの内容を極力利用しつつ、ここだけは譲れないって文言だけを反映させることができます。
開いたpoファイルのヘッダー部分を残して、その他は全て削除し、変更後の翻訳行のみ残して保存します。
今回の例では下記のようなファイルになりました。
ヘッダー部分は、コピー元のデータによって様々かと思いますので、下記とは全く同じではありません。
msgid "" msgstr "" "Project-Id-Version: Welcart e-Commerce\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-20 00:00+0900\n" "PO-Revision-Date: 2019-03-04 16:11+0900\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.5.7\n" msgid "Admit to send it with this information." msgstr "プライバシーポリシーに同意の上、上記内容を送信する"
msgid “Admit to send it with this information.”
msgstr “プライバシーポリシーに同意の上、上記内容を送信する”
これで下準備はOK。
.moファイルを書き出し
保存した.poファイルをコンパイルして、.moファイルを書き出します。
ここで登場するのが、Poedit。
PoeditをPCにインストールして、保存したファイルを開きます。
開いたら、ファイル→MOにコンパイル
で、同じ階層にmoファイルを書き出します。
これで、翻訳データの準備が完了しました。
functions.phpに翻訳データの読み込み指定を書き加える
あとは、functions.phpに、翻訳データのオーバーライド指定を追記するだけでOKです。
流れとしては、既にプラグインからload_textdomainにて読み込まれている翻訳データをアンロードします。
アンロードした上で、自作の翻訳データを読み込ませ、さらに、オリジナル(元の翻訳データ)を読み込みます。
こうすることで、まずは、自作の翻訳データが適用され、そこに無いものに関しては、オリジナルの翻訳データが利用されることになります。
/***ウェルカート翻訳ファイルをオーバーライド***/
//ウェルカートプラグインのテキストドメインを指定
$welcart_text_domain = 'usces';
//オリジナル(元の)翻訳データ
$welcart_original_mofile = WP_PLUGIN_DIR.'/usc-e-shop/languages/'. $welcart_text_domain.'-ja.mo';
//変更後の自作翻訳データ(任意)※例では利用している子テーマのlanguagesフォルダ
$welcart_override_mofile = get_stylesheet_directory().'/languages/'.$welcart_text_domain.'-ja.mo';
//読み込まれている翻訳データをアンロード
unload_textdomain($welcart_text_domain);
//変更後の自作翻訳データをロードする
load_textdomain($welcart_text_domain, $welcart_override_mofile );
//オリジナル(元の)翻訳データをロードする
load_textdomain($welcart_text_domain, $welcart_original_mofile );
以上を、functions.phpに追記します。
追記箇所はどこでも良いかと思います。
保存して、サーバーにアップロードしたら完了です。
変更した箇所のみが、変わっていることが確認できたらOKです。