翻訳ファイルの子テーマ化

子テーマでfunctions.phpなどを変更していくと翻訳すべき項目にぶつかっていくと思います。例を挙げると_()の部分で、Wordpressが翻訳を行ってくれる部分です。

個人的には、日本語のみでブログを運用していく場合は、子テーマのfunctions.phpに日本語で直書きしてもいいような気がしないでもないですが。

子テーマのfucntions.phpで定義した関数が翻訳必要な場合、子テーマで翻訳ファイルを読み込む必要があります。なぜなら、Wordpressの呼び出し順序として子テーマfunctions.php→親テーマfunctions.phpとなり、翻訳ファイルの読み込みは親テーマ内で行われるため、子テーマ用に読み込ませる翻訳ファイルが必要になります。子テーマ内で親テーマの翻訳ファイルを読み込ませればいい(やったことないです)のですが、どうせなら、子テーマ内で必要なものは子テーマ専用の翻訳ファイルに記述して、その他は親テーマ任せるということにすれば、管理がグっと楽になります。これは、そもそもの「子テーマ」という考え方そのものです。

そこで、ここでは子テーマに翻訳ファイルを作成し、読み込むようにすることをやっていきます。


翻訳するための情報はWordpressでは、moファイル(バイナリ)なるものに格納されています。主なものとして以下があります。

  • 「ja.mo」 ー WordPress本体用の翻訳ファイル
  • 「{テーマ名}-ja.mo」 ー テーマ用の翻訳ファイル
  • 「~.mo」 ー プラグイン用の翻訳ファイル

moファイルはpo(テキスト)からコンパイルすることで使用できるようになります。
代表的なコンパイラとしてはPoeditがありますのでダウンロードしてインストールしてみてください。ここからダウンロードできます。

TwentyTwelveの場合は、テーマ用の翻訳ファイルtwentytwelve-ja.poが/wp-content/languages/themes/にあると思いますので、これをベースに作成するといいと思います。

例として、ここで行った変更を例に手順を追っていきます。

1. poファイルに新規追加する

twentytwelve-ja.poをテキストエディタで開くと、文字の羅列があると思います。今回変更したもので一例を挙げると、以下の部分があると思います。

#: functions.php:352
msgid "This entry was posted in %1$s and tagged %2$s on %3$s<span class=\"by-author\"> by %4$s</span>."
msgstr "カテゴリー: %1$s | タグ: %2$s | 投稿日: %3$s | <span class=\"by-author\">投稿者: %4$s</span>"

WordPressを日本語で使用している場合は、*msgidからmsgstrへWordpressが翻訳を行います。
今回 This entry was posted in %1$s and tagged %2$s on %3$s by %4$s.
を This entry was posted in %1$s and tagged %2$s by %4$s.
に変更したので、それ用のものを挿入します。
以下は例です。(投稿日の部分を消しました。)

#: functions.php: child theme
msgid "This entry was posted in %1$s and tagged %2$s <span class="by-author"> by %4$s</span>."
msgstr "カテゴリー: %1$s | タグ: %2$s | <span class=\"by-author\">投稿者: %4$s</span>"
%1$sがカテゴリー・%2$sにタグ・%3$sに投稿日・%4$sに投稿者が出力されるので、それさえ守れば変更内容は自由です。

2. po -> moへコンパイルする

このファイルをja.poにリネームしてPoeditで開いて下さい。左に翻訳前(英語)と翻訳後(日本語)があると思います。追加した内容が間違いないか確認して「保存」ボタンを押してください。日本語側は、ここで編集もできます。
うまくいったら、同じフォルダにja.moファイルが作成されているはずなので/wp-content/themes/[子テーマ]/languagesにコピーして下さい。
poedit

3. 子テーマに子テーマ用翻訳ファイルを読み込むようにする

functions.php(子テーマ)に、子テーマの翻訳ファイルを読み込むようにします。このまま追記して下さい。
また、load_child_theme_textdomainは「ja.mo」など言語記述のみのファイル名だけ読み込むを行うようなので気をつけて下さい。
load_child_theme_textdomain

add_action( 'after_setup_theme', 'child_setup');
function child_setup() {
    // 子テーマフォルダ/languages下のmoファイルを読み込む
    load_child_theme_textdomain( 'tt_child', get_stylesheet_directory() . '/languages');
}

ポイントは、'tt_child'の部分です。名前はなんでもいいですが、__( '翻訳対象のテキスト', 'tt_child');と第二引数に指定する必要があります。ここの投稿日の非表示もしくは投稿者の非表示の部分のソースを参照。

  • このエントリーをはてなブックマークに追加

関連記事

Twitterのツイートボタンの設置

Twitterのツイートボタンの設置はプラグインを使用しなくても容易に実装できるようです。 ソーシャルボタン設置のプラグインはこちらにいちおうまとめています。 Tweetボタンの設置コード 公式

Twenty Thirteen カスタマイズ

WordPress 3.6のデフォルトテーマである「Twenty thirteen」のカスタマイズをまとめて投稿します。 Twenty thirteenのカスタマイズネタがあまりないです。(それだけ

no image

「最近の投稿」ウィジェット カスタマイズ

目次 ウィジェットを削除 標準の設定 特定のカテゴリーに属する投稿を除外 カスタマイズ プラグイン 「最近の投稿」ウィジェットを削除 「最近の投稿」ウィジェット

Twenty Twelve 投稿日・投稿者を非表示に

TwentyTwelveのちょっとした部分をカスタマイズする方法を紹介していきます。 また、子テーマで出力部分を変更する際に、翻訳が必要な部分//_()の部分がでてきますので、以下の投稿も参考に

「Google Analytics for WordPress」投稿URLにやたら長いパラメータがついてしまう

Google 検索結果をみていたら、Wordpressの投稿のURLが実際のものより異様に長くなっているので何かなと思って調査してみました。 このような感じで http://kwski.net/ca

Twenty Twelve カスタマイズ

何点かTwentyTwelveのカスタマイズについてご質問をいただきましたのでここでまとめてみます。 目次 子テーマのつくりかた 他記事へのリンク アーカイブタイトル("カテゴリー別アーカ

ブルー・オレンジ・ピンクと選べるテーマ「Bouquet」をカスタマイズ

プレビューはこちら ダウンロード 目次 ヘッダー画像の高さを変更 アイキャッチをアップロード h1タグがやたら多いので最適化 画像をレスポンシブ対応 フォント「Sorts Mill

投稿タイトルのtitle属性を削除など Twenty Twelve 1.2での変更点

TwentyTwelveが1.1から1.2にアップデートされたので、いくつか変更点を洗ってみました。 (*全てを網羅しているわけではありません) 全ての変更部分は、こちらに記載されています。

Twenty Twelve "Open Sans"の使用を止

「Twenty Twelve」では、"スペシャルフォント"ということで「Open sans」を特別にロードしているようです。今のところ使うつもりがないのでリンクしないようにしました(必要になれば戻せば

no image

「編集(Edit)」リンクの非表示方法

ログインした状態で投稿ページを開くと投稿内や各コメントに各編集ページへリンクしてくれる「編集」リンクが表示されます。(繰り返し言いますが、自サイトにログインしているユーザにしか見えません。) こ

Comment

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

    PAGE TOP ↑