WordPressはもちろん、公式ディレクトリで公開されてるプラグインやテーマは、世界中の有志によってローカライズされていて、われわれは制作者は、その恩恵を受けて仕事をしている。ありがとう。
でも、扱う商材や顧客のブランディング志向によって、翻訳している単語が受け入れられないことがある。
WordPressは、そんな顧客のわがままにも応えられる優れたシステム。いろんなことができるのだ。だから大変なこともある。。。
先日、Snow Monkeyのフォーラムでも質問が出ていたので、my-snow-monkey.phpに記述する方法を紹介させてもらった。
この方法は、日本のWooCommerceの第一人者で、同コントリビューターでもある田中さんのサイト(職人工房)の投稿によるもの。
gettextを調べると、WordPress(PHP)以外にも使われてるのか―と思いつつ、それは無視してWordPressで試してみた。
add_filter('gettext', 'change_japanese_text', 20, 3);
function change_japanese_text( $translated_text, $untranslated_text, $domain ){
switch ($untranslated_text) {
case 'Select options': //翻訳もとのテキスト
$translated_text = '選んで購入';
break;
case 'In stock':
$translated_text = '在庫があります';
break;
case 'Out of stock':
$translated_text = '在庫がなくなりました';
break;
}
return $translated_text;
}
$untranslated_textや$domainが気になる。
もしかして、プラグインやテーマを$domainで指定できたりするのかな・・・?
ま、それについては、またあとで調べることにしよう。
今回の参考コードに戻る。
caseには、翻訳前の単語(ワード、テキスト)を入れる必要がある。日本語訳されてると、それはわかるが元の単語がわからないので、以下の場所にあるファイルで調べる。
/wp-content/languages/plugins/woocommerce-ja.po
これをPoeditやエディターで開いて該当の単語を探す。
※この.poファイルに単語(ワード、テキスト)がないものは、今回はスルー。
とりあえずこれで一件落着なので、今日はこのへんで。