WordPressは、世界中で最もサイト構築に利用されているオープンソースです。
そのため、コア、テーマ、プラグインには、複数の言語に対応する仕組みが取り入れられています。
言語ファイルの.poを、新規に作成したり変更することで、ページ上のテキストを編集することが可能です。
海外のプラグインの場合は、日本語がおかしかったり、100%日本語に対応している訳では無く、ところどころ翻訳されていないことも多々あります。
その時は、自分で翻訳を追加して.moファイルをコンパイルして対応します。
ただ、この時に気をつけなければならないことは、テーマやプラグインのバージョンを上げると
翻訳ファイルまで更新されてしまい、自分で翻訳した単語がまた未設定に戻ってしまうことです。
このあたりの対応が面倒・・・
WooCommerceのプラグインで、日本でなじみのない単語やテキストを、分かりやすく翻訳していても、アップデートの度に戻ってしまいます。
WooCommerceは、比較的アップデートの頻度が高いため、その都度コピーし直すのでは面倒です。
いろいろと調べていると、自動アップデートはやめて、FTPによるアップデート(言語ファイルはアップデートしない)を推奨していたりと・・・
面倒・・・
そして、その面倒な作業をしているのに、新しい翻訳がありますとメッセージが常に表示されたままになります。
これはこれで邪魔・・・
言語ファイルのパーミッションを変更して、上書き禁止にしても同じだし・・・
無いか良い方法が無いのか?
調べてみても見つかりませんでした。
みんな翻訳ファイルの管理は、まめにしているのだろうか?
それとも、便利な翻訳プラグインがあり、データベース上に単語を登録することで、常にその翻訳が使われるものがあるのだろうか?
うーん。
結局ごり押し対応で今は様子見することにしました。
行った作業は
テーマフォルダに新しくlanguagesフォルダを作成し、その中に編集した自分の翻訳ファイルを置く。
テーマ側の翻訳ファイルが使われるように、プログラムを追加する。
です。
コード(例)
function MY_load_textdomain_mofile( $mofile, $domain ) {
$locale = get_locale();
$myfile = get_stylesheet_directory() . ‘/languages/’. $domain .’-‘. $locale . ‘.mo’;
if ( is_file( $myfile ) AND ‘ja’ == $locale ) $mofile = $myfile;
return $mofile;
}
add_filter( ‘load_textdomain_mofile’, ‘MY_load_textdomain_mofile’, 99999, 2 );
テーマフォルダ内に、テーマやプラグインの翻訳がある場合だけ、テーマ側の翻訳を使うようになります。
これで、翻訳した翻訳ファイルが、アップデートの度に戻ってしまうことも無く、管理やメンテナンスが楽に行えるようになりました。
ただ、新しい単語の追加に対応していくコストは残っていますが・・・