今回は iPhone の Safari で自分のサイトを見た時に文字数を少し調整するだけでレイアウトがキレイになりそうなことに気付いてしまったので、日本語リソースの文字列を変更することにしました。
単純にリソースを変更するだけでなく、子テーマでリソースを上書きする方法で対応してみます。
ささいな事だけど気になった
気になったのはコレ「す」だけが改行しています。これだけで1行使っているのが勿体ない。「コメントを残す」という文字列を「コメントする」に変えれば改行しなくなります。
こんなささいなことが気になって仕方ないのです。では、早速、文字列を修正していきましょう。
テーマとリソースファイルの関係
WordPressでは国際化対応のために gettext という仕組みを使っています。この仕組みを簡単に説明すると、各言語用の翻訳された mo (Machine Object) ファイルを読み込んで WordPress が動作している言語用のリソースを表示する仕組みです。 mo ファイルは po (Portable Object) ファイルから生成するので、リソースを修正したい場合は、この po ファイルを編集して mo ファイルを生成する事になります。詳しく知りたい方は以下をどうぞ。
I18n for WordPress Developers – WordPress Codex 日本語版
私の使っている The Bootstrap というテーマの場合、テーマフォルダの中の lang フォルダ配下にリソースファイルが入っています。
この中の ja_JA.po というファイルが日本語用の po ファイルです。以前も書きました が WordPress の日本語版は WPLANG に ja が指定されているので ja_JA.mo ではなく ja.mo が必要になります。とはいえ、ファイル名だけの話なので、今回は ja_JA.po をカスタマイズする時に ja.po という名前でコピーしてカスタマイズします。
リソースファイルの作り方
po ファイルや mo ファイルの操作は Mac を前提に書いています。Windows では PoEdit というようなツールを使うようですが、ここでは割愛します。ja.po ファイルはエディタで開いて編集することが可能です。
まずは ja.po ファイルをエディタで開いてみて “コメントを残す” というキーワードを探してみましょう。
451 452 453 454 455 |
#@ the-bootstrap #: comments.php:65 #: inc/template-tags.php:81 msgid "Leave a reply" msgstr "コメントを残す" |
これを
451 452 453 454 455 |
#@ the-bootstrap #: comments.php:65 #: inc/template-tags.php:81 msgid "Leave a reply" msgstr "コメントする" |
に書き換えれば po ファイルはでき上がり。ただし、日本語から探すと同じ翻訳のリソースが複数存在したりすることがありますので、同じものが複数あった場合はコメントにあるソースファイルの内容などを見ながら修正すべき場所を確かめてください。
po ファイルができたら、次は po ファイルから mo ファイルを作ります。
ターミナルを開いて以下のコマンドを入力してリターンを押下するだけ。
1 |
msgfmt ja.po -o ja.mo |
これで ja.mo ファイルができました。
moファイルを子テーマとしてロードする方法
オリジナルを置き換えてしまっても良いのですが、アップデートの時などに面倒になるので、これも子テーマから読み込むことにします。まず、先ほどのファイルを子テーマのフォルダ直下に lang というフォルダを作ってその中に入れることにしました。
リソースファイルはテキストドメインという考えで場所を指定することができますので、子テーマのテキストドメインを自分自身のドメインの下に変えることにします。テキストドメインは子テーマの functions.php で次のように指定して変更します。
1 |
load_theme_textdomain('the-bootstrap', dirname(__FILE__).'/lang'); |
こうすることで、子テーマの下のリソースファイルが読み込まれるようになり、このようなスタイルで表示されるようになりました。
たったこれだけの事で今まで以上にカスタマイズできるようになります。
まだ気になるところがあったのでついでに直した
これをやっている時に、たまたまもう一つ気になるところを見つけました。…何ですかこれ?
“One thought on” って翻訳されていないじゃないですか。
仕方がないので同じようにリソースを探して修正します。今回は 1 件の場合と複数件の場合でリソースを変えているようなので両方直します。
84 85 86 87 88 89 90 |
#@ the-bootstrap #: comments.php:29 #, php-format msgid "One thought on “%2$s”" msgid_plural "%1$s thoughts on “%2$s”" msgstr[0] "One thought on “%2$s”" msgstr[1] "%1$s thoughts on “%2$s”" |
こんな感じに修正しました。コメントもピンバックもあるので「反応」と約してみました。
84 85 86 87 88 89 90 |
#@ the-bootstrap #: comments.php:29 #, php-format msgid "One thought on “%2$s”" msgid_plural "%1$s thoughts on “%2$s”" msgstr[0] "1件の反応が “%2$s” にあります" msgstr[1] "%1$s件の反応が “%2$s” にあります" |
どうでしょう?
複数件の場合の表示も問題なさそうです
このように、翻訳されていないテーマを翻訳することもできますので、この技は是非使ってみてください。未翻訳のリソースを翻訳したらテーマの開発者に送ってあげると喜ばれるかもしれません。
皆さんもお試しアレ
WordPress 関連のエントリ
インストールや設定変更とデータ移行
プラグイン
バージョンアップ
カスタマイズ
Stinger 3関連
チューニング
MAMPを使ったバックアップサイトの構築
開発関連
最後まで読んでいただきありがとうございます。
左のアイコンをクリックして、このブログを Feedly に登録していただけると嬉しいです
Facebook ページでも情報を発信していますのでよろしかったら「いいね!」をお願いします
RSSリーダへの登録は こちら からどうぞ。
コメントを残す