WordPress

WordPress の Attitude テーマに日本語翻訳ファイルを使用する(子テーマ利用)

投稿日:2017年5月15日 更新日:

WordPress の Attitude テーマに日本語翻訳ファイルを追加する方法です。
子テーマを利用していることを前提としており、子テーマのディレクトリ側に翻訳ファイルを追加します。

前置き(WordPressの国際化機能について)

WordPress は gettext という技術を利用した「国際化」機能が標準で実装されています。Webサーバに各言語毎の翻訳ファイルを用意しておけば、あとは自動で読者の環境に適した翻訳ファイルを使ってページを表示してくれる機能です。

例えば、日本語環境で使用しているブラウザでウェブサイトにアクセスすると、

Accept-Language:ja,en-US;q=0.8,en;q=0.6

といった HTTPヘッダもWebサーバに送られます。これは「読み手側がどんな言語で記事を読みたいか」を Webサーバに伝える情報であり、上記の場合は “ja” つまり日本語を第一希望としています。そして、WordPressはこの Accept-Language で指定された言語に合致した翻訳ファイルを使ってくれます。

※ Accept-Language の仕様は、こちら です。

環境

  • CentOS (Linux) で Webサーバを実行しています。
  • ターミナルアプリケーションを使って、Linuxマシンにログインして作業します。
  • CentOS で gettext が入っていない場合は、以下のコマンドでインストールしておく必要があります。
$ yum install gettext
  • Attitude の子テーマを利用します。子テーマのディレクトリ名は、attitude-child とします。
  • 子テーマ側で load_theme_textdomain()関数を実行する場所は、attitude_add_files アクションフックを使っても良さそうでしたが、今回は、after_setup_theme アクションフックで実行しました。

作業

以下は、WordPress の Attitude テーマに日本語翻訳ファイルを追加する作業です(子テーマを使う場合)。

テーマのディレクトリに移動します。

$ cd path/to/wordpress/wp-content/theme

子テーマのディレクトリ内に、翻訳ファイル用のディレクトリを作成します。
これは、Attitudeのディレクトリと同じ構成にしました。
ディレクトリのパーミッションは適宜設定してください。

$ mkdir -p attitude-child/library/languages/

親(attitude)ディレクトリから gettextのテンプレートファイルをコピーします。
このファイルはコピーしなくても良いのですが、後でコマンドを実行する時にラクになるようコピーしました。

$ cp -p attitude/library/languages/attitude.pot attitude-child/library/languages/

子テーマ側の翻訳ファイル用ディレクトリに移動します。

$ cd attitude-child/library/languages/

日本語用の翻訳ファイルを生成します。

$ msginit --locale=ja --input=attitude.pot

これで、ja.po ファイルが生成されました。
次に、この翻訳ファイルを編集して日本語をセットしていきます。

$ vi ja.po

例えば、

msgid "Tagged on: "
msgstr ""

となっているところを、

msgid "Tagged on: "
msgstr "タグ: "

と書き換え、保存して閉じます。

次に、moファイルを生成します。

$ msgfmt -o ja.mo ja.po

これで、ja.mo ファイルが生成されました。
WordPressが画面表示の際に使用するのは、こちらのファイルになります。

次に、子テーマ側の functions.php ファイルを開き、この翻訳ファイルを読み込む命令を記述します。

$ vi attitude-child/functions.php

以下を追記します。

function add_my_functions_to_parent_theme() {

  load_theme_textdomain( 'attitude', get_stylesheet_directory() . '/library/languages' );

}

add_action( 'after_setup_theme', 'add_my_functions_to_parent_theme' );

load_theme_textdomain() は親テーマ側でも実行されています。同じドメイン(第一引数、この場合は ‘attitude’)に対して再度実行するとデータがマージされます。

以上の作業により、記事ページに表示されるタグ名の部分が変更されます。

こうなっていたのが、


こうなりました。


まとめ

翻訳ファイルの仕組みは WordPressが持っている機能ですので、Attitude に限った話しではありません。他のテーマを利用している場合も参考にしてみてください。

📂-WordPress
-

執筆者:labo


comment

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

関連記事

WordPress

【WordPress】Gutenberg の 画像ブロック(core/image)で相対URLをセットする

WordPress の Gutenberg において、「 画像ブロック (core/image)」で相対URLを使用するプラグインを作りましたので紹介します。

WordPress

【WordPress】Gutenberg をカスタマイズするための情報

WordPress の Gutenberg をカスタマイズするための情報を紹介します。

WordPress

JP Markdown と Classic Editor をやめ、Gutenberg を利用することにしました

JP Markdown と Classic Editor をやめ、Gutenberg を利用することにしました。かなり便利そうです。

WordPress の投稿記事に画像を貼る手順と sizes 属性値の変更

目次1. はじめに2. 事前の追加設定3. 投稿記事を作成する時に、画像を挿入する手順[メディアを追加] ボタンから画像を挿入4. 参考 1. はじめに この Webサイトは WordPress で作 …

WordPressサイトで現在表示しているページの編集ページを開くブックマークレットを作りました

目次概要編集ページへのURL作成したブックマークレットまとめ 概要 WordPressにログインした後、通常のページ(管理ページではなく)を表示すると、画面上部に管理ツールバーが表示されます。このツー …