翻訳 WordPress テーマ レインドロップス(theme Raindrops)

wordpress.orgにホストされる公式テーマは、翻訳ファイルの読み込み元が、theme/languages/のmoファイルではなく、wp-content/languages/themes/のmoファイルが読み込まれるようになっていますので、ご注意ください

WordPressテーマは、様々な言語で利用されるため、日本語環境で利用する場合は、翻訳ファイルで日本語化されます。

WEBサイトを構築した場合、それぞれのウェブサイトで必ずしも翻訳文字列が望み通りの言い回しで表示されるとは限りません。

また、テンプレートファイルを直接編集すると、テーマのアップデートに対応できなくなったり、

チャイルドテーマで、それぞれのテンプレートを編集する場合も、その数が多くなるとテンプレート単位のアップデートは、適用されなくなる等

面倒な問題もあります。

このページでは、Raindropsに独自実装されたフィルタ、翻訳フィルタ、CSSによるテキストの変更などに就いて説明を行います

翻訳の微調整は、通常以下のようなフィルターを使う事で可能です。

チャイルドテーマで、親テーマの翻訳を修正する

チャイルドテーマで、翻訳ファイルを持つ場合は、

<?php load_child_theme_textdomain( $domain, $path ) ?>
Codex load child theme textdomain

を使うことが出来ます。

しかし、新しく翻訳ファイルを作る必要がなく、親テーマの翻訳を自身のサイト用に変更するだけでよいのであれば、

Raindropsでは、テーマの翻訳ファイルの場所を変更するフィルタが実装されていますので、簡単に子テーマ用の翻訳を変更することが出来ます。

  1. まず、親テーマの languages ホルダと、必要な翻訳ファイルをコピーします。
  2. コピーした、languages/ja.po,languages/ja.mo を、チャイルドテーマ/languages/ja.po,チャイルドテーマ/languages/ja.mo に貼り付けます。
  3. チャイルドテーマの functions.php に以下のコードを追加します。
    add_filter('raindrops_load_text_domain', 'extend_raindrops_load_text_domain' );
    
    function extend_raindrops_load_text_domain( $text_domain ){
    	
    	return get_stylesheet_directory() . '/languages';
    }

これで、親テーマが読み込む翻訳ファイルは、チャイルドテーマ/languages/ja.mo に変更になりますので、

チャイルドテーマの、チャイルドテーマ/languages/ja.mo を Poedit で開いて、翻訳を変更すると、翻訳文字列が変更になります。

Tips