PoeditでWordPressの日本語対応方法。英語プラグインの日本語翻訳ファイル作成
2017/03/11
Poeditで WordPressを日本語に対応させる方法を解説
WordPressのプラグインを日本語化することになったきっかけ
Theme My Login で日本語の翻訳ファイルを作成しました。
「Theme My Loginでメール認証、管理者承認付の会員管理・基本編」
Theme My Loginの日本語化ファイル
Theme My Loginの日本語翻訳ファイル Ver.6.4.5対応
ブログのようにユーザは記事を読むだけのサイトであれば、多少英語のテキストが残っていても「まぁいいや」で終わらせるのですが、今回「Theme My Login」というプラグインを使って作っていたサイトは「月極駐車場検索エース」でした。
このサイトは、ユーザが利用する会員制サイトでしたので、ページの項目やエラーメッセージが英語で表示されるというのは受け入れられるものではありませんでした。
そんなわけで、自分で英語を和訳ファイルを作成したのですが、その時の手順などを解説します。
WordPressの多言語対応の仕組み
WordPressは、PHP-gettextという仕組みを使って多言語対応を行っています。
利用されるファイルは、「.pot」「.po」「.mo」の 3ファイルです。
- .pot:.poの元になるファイル
- .po:.potを元に翻訳したテキストを編集したファイル
- .mo:.poを元に作成されプログラムが利用するバイナリファイル
「.pot」ファイルは、「Potable Object Template」で全てのもとになる「文章」が書かれているテンプレートファイルです。
ただのテキストファイルで、テキストエディタで開いて編集することができます。ここに記載してある文章が翻訳可能な文章です。
たいていは英語で書かれています。
「.po」ファイルは、「Portable Object」で翻訳をした文章を編集していくファイルです。
「.pot」ファイルは、日本語以外の言語に翻訳するときにも使いますので、「.pot」ファイルをコピーして、.poファイルを作成し、ファイル名の最後に「-ja」を追加します。
theme-my-login.pot
↓
↓コピーしてファイル名を変更
↓
theme-my-login-ja.po
作成した「.po」ファイルを開いて日本語の翻訳を当てていきます。
「.mo」ファイルは、「Machine Object」で .poファイルを実際に翻訳プログラム「PHP-gettext」が利用しやすい形式のバイナリファイルに変換したファイルです。
実際に WordPress(PHP-gettext)が利用するのはこの .moファイルだけですので、このファイルがあれば最低限足ります。
ですが、その後の編集のことを考えて、.po、.moの 2ファイルを提供することが一般的なようです。
.poファイルの書式(中身)
.poファイルはテキストファイルですので、テキストエディタで開いてこのファイルを編集することも可能です。
1 2 3 4 |
#: admin/class-theme-my-login-admin.php:68 #: admin/class-theme-my-login-admin.php:133 msgid "Theme My Login Settings" msgstr "Theme My Login の設定" |
例えば、「Theme My Login」の .poファイルは、上記のようになっています。
3行目が翻訳元の英語の文章。
4行目が翻訳をした日本語の文章。
1行目、2行目は、翻訳元の英語が編集されているファイル名と行数。
3行目は、元の文章が長い場合は、何行かに分けて書かれている場合もあります。
.potファイルは、4行目の翻訳した日本語の文章が編集されていない状態のファイルです。
翻訳ファイル.moファイルを作成する方法
翻訳ファイル「***.po」を実行ファイル「***.mo」に変換するには「Poedit」というツールを使うと便利です。
Poedit
https://poedit.net/
他にも変換するツールはあるのだと思いますが、この「Poedit」は変換するだけではなく、.poファイルを編集するエディタとしても使い勝手のいいエディタになっていますので、「Poedit」を使って翻訳ファイル .poファイルを編集しながら、実行ファイル .moファイルも生成するという方法が便利でしょう。
ちなみに、「Poedit」は OSDNサイトからもダウンロードできるようですが、本家サイトの方が最新がダウンロードできます。
本家サイトは英語ですが、アプリ自体は日本語になっていますので安心して利用できます。
WordPressのプラグインを日本語化する手順
前ふりが長くなってしまいましたが、WordPressのプラグインを日本語化する手順を紹介します。
.potファイルのある場所
.potファイルは、下記の場所にあります。
/{wordpress}/wp-content/plugins/{プラグイン}/language/
「s-giken」というプラグインの場合は、下記のファイルがあるでしょう。
/{wordpress}/wp-content/plugins/s-giken/language/s-giken.pot
この「language」フォルダや、その中に .potファイルが存在しないプラグインは、多言語化対応されていないプラグインということになりますので、日本語化はできません。
プログラムファイル、テンプレートファイルを直接編集する必要があります。
.poファイルを作成して設置
.potファイルは、テンプレートファイルですので、.potファイルをコピーして .poファイルを作成します。そして、日本語の翻訳ファイルですので「-ja」を追加します。
例)
s-giken.pot
↓
s-giken-ja.po
.poファイル、.moファイルを設置する場所は、下記になります。
○ /wp-content/languages/plugins/
× /{wordpress}/wp-content/plugins/{プラグイン}/language/
「×」の行のプラグインフォルダの中の「language」フォルダの中に .moファイルを設置しても動作します。
なぜなら、プラグインの提供元がオフィシャルに翻訳ファイルを提供する場合は、この中の「language」の中に .moファイルを設置して提供するからです。
ですが、このフォルダは、プラグイン提供元がオフィシャルにファイルを提供する場合の設置場所ですので、プラグインのアップデートがあった場合には、まるっと入れ替えられてしまうエリアです。
そのため、ここにファイル入れておくとプラグインのアップデートの時に消えてしまいます。
実際に私は .poファイル、.moファイルをプラグインフォルダの中で作成をしていましたので、プラグインのアップデートの時に跡形もなく消えてしまいました。
数日間かけて翻訳したファイルだったのですが...
ですので、そうならないために「wp-content」直下の「languages」フォルダにファイルを設置します。
ちなみに、テーマの翻訳ファイルの場合は、下記になります。
○ /wp-content/languages/themes/
× /wp-content/themes/{各テーマ名}/languages/
.poファイルを編集して .moファイルを作成
.poファイルを作成し、所定の場所に設置したら、あとは Poeditで編集するだけです。
.poファイルを読み込むと、英語と日本語の対比が表示されますので、まだ翻訳していない英文を選択し、「翻訳」の入力エリアに日本語訳を編集していきます。
Poeditだと、「保存」をクリックすると、.poファイルが保存されるのと合わせて、.moファイルが生成されますので非常に簡単です。
翻訳した .moファイルが所定の場所に置き、プラグインのページにアクセスし、日本語化されていれば成功です。
全部の英語を翻訳しなくても OKです。翻訳されているところだけが日本語に変換されて表示されます。
WordPressのプラグインを日本語化するあとがき
この WordPressのプラグインを日本語化する記事は、会員管理のためのプラグイン「Theme My Login」を使おうと、日本語化した時の手順などをまとめたものです。
ローカル環境のプラグインフォルダでファイルを編集していたために、プラグインをアップデートしたことで、それまで作成していたものをまるっと消されてしまうという悪夢も経験しました。
ローカルで作成したものを、FTPでサーバにアップして動作確認、という方法であれば、たとえ、プラグインをアップデートしてファイルが消えたとしてもローカルに元ファイルが残っているわけですが、ローカル環境の WordPressファイルを直接編集していましたからね。
プラグインのアップデートで消されてしまうともう跡形もないワケです。
ファイルの復元ツールを使っての復旧も試みてみましたが、かけらも残っていませんでした...
そんなわけで、フォルダを入れる場所は二度と間違わないでしょう。
ちなみに、私は何年か前に受けた TOEICは 250点でした。
TOEICは三択と四択の問題ですので、計算上はランダムに回答しても 280点くらいは取れるはずなのに、です。
でも、英語は分かるけど WordPressを知らない方が訳したものよりはマシな訳になっているんじゃないかとは思っています。
もちろん、Google翻訳をフル活用して翻訳しましたが、Google翻訳よりも意味が通る文章になっていると思います。
とはいえ、間違っている訳があれば教えてください!
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
WP Mail SMTPはPHP5.6、7.0系ではメール送信時にエラーが発生。その対処方法。
PHPのバージョンを5.6(7系含む)にアップデートしたらプラグイン WP Mail SMTPを利用してSMTPサーバ経由して送信していたメールが送信できなくなった。その原因と対処方法を詳細解説。
-
WordPressの送信メールが協定世界時(UTC・グリニッジ標準時)の問題対応
WordPressから送信されてくるメールが9時間ずれている。その不具合の解消方法と根本原因の解説です。date_default_timezone_set();の設定を変更で対応できます。
-
WordPressのバージョンアップをしたら「the_content」でコンテンツが表示されなくなった
「the_content」でコンテンツが表示されないのは仕様が変更されたためでプログラムの修正が必要です。
-
カスタムタクソノミーのターム一覧をウィジェットにショートコードで編集
カスタムタクソノミーに属するターム(カテゴリ)の一覧を wp_list_categories()関数+ショートコードでウィジェットに編集するサンプルプログラムです。
-
highlight.jsの設定方法を解説。 Syntax Highlighterから乗換え、高速化にも最適
Crayon Syntax Highlighterの代替案としてhighlight.jsを試してみた。highlight.jsは設置簡単で軽量なシンタックスハイライト。デザインもCSS変更だけの簡単変更。
-
WordPressのサイドバー(サイドナビ)はウィジェットで編集
サイドバー(サイドナビ)を編集するウィジェットの利用方法の解説です。カテゴリ一覧、アーカイブ、リンク集などを設定する方法を解説しています。
-
WordPress 任意のファイルを読み込むショートコードの処理
投稿ページにショートコードを利用して任意のファイルを読み込む処理の解説です。
-
BackWPupでバックアップ・Jobの設定・保存する情報の設定
BackWPupその2。Jobのバックアップの基本部分と対象の設定についての解説。
-
Advanced custom Fieldsの条件判定活用方法・フィールドグループ複製より便利
Advanced custom Fieldsの条件判定を使ってカテゴリごとに入力項目を変化させる方法を実例を用いて解説します。投稿フォーム構築が格段にレベルアップします。
-
seesaaからWordPressに引越。インストールなど必要な全てを解説
seesaaブログからWordPressへの引越し解説。他のブログにはないseesaaブログからcanonicalとリダイレクトの設定方法を実装!