翻訳ファイルから取得した内容を書き換える方法

[WordPress] 翻訳ファイルから取得した内容を書き換える方法

※ 当サイトは広告を含みます。

WordPressの翻訳ファイル(.mo)をプログラム的に書き換える方法です。
WordPress本体側や特定プラグインの出力文字列を強制的に変更できます。

◆ 安全にfunctions.phpをカスタマイズする方法
functions.phpの修正に不安がある人は以下を参考にしてください。

コードを追加する

functions.phpとかに以下のコードを追加します。


// 翻訳ファイルの改変
add_filter('gettext', function ($translation, $text, $domain) {
  switch ($text) {
    case 'Select Category': {
        $translation = $text;
        break;
      }
  }

  return $translation;
}, 10, 3);
管理人
管理人

これは例。上記コードを利用するとカテゴリ用ウィジェットの文字列が英語(Select Category)になります。

りさ
りさ

英語にするの好きだね。

仕組み

gettextってfilterを使うと翻訳ファイル(.mo)の処理に割り込めます。
指定する3つの引数が重要で、簡単にまとめるとこうなります。

$translation 翻訳されたテキスト
$text 元々のテキスト
$domain 識別用ドメイン

ドメインに関してはWordPress本体側ならdefaultだと思います。
対象がプラグインの場合はコードとか覗いて調べる必要あるので頑張って。

結論として、翻訳後の値がreturnした値に強制的に変更されます。
その過程の条件分岐は内容次第。追加の情報を付加するような使い方も可能です。

あとがき

翻訳ファイル(.mo)自体が変更できる状況なら直接ファイルを修正するほうがいい。
今回の処理は本体側とかプラグインみたいな部分を強制的に変更するために使います。

この記事は参考になりましたか?

関連記事

コメント

この記事へのコメントはありません。