画像やリンクが無効になっている可能性もあるのでご了承下さい。
最近はこのブログで使用している Suffusion がバージョンアップされた事もあり、結構細かく弄り直している時間が多い。
テーマが更新される前に一旦バックアップを取ってからテーマを更新。その後、ホスト上でカスタマイズ済の旧バージョンと diff しつつ自分がカスタマイズした内容を確認しながら新バージョンのソースをまたカスタマイズなんて言う事をやっていた。
正直このやり方はバージョンアップが行われる度に必要となってくるから、面倒だし非効率だ。スタイルシートなんかは子テーマである suffu-scion を導入する方向で解決させるとして、必要箇所だけ日本語化していた部分に関してはソースを直接改編するのではなくて、言語ファイルである ja.mo を作成する事で解決するように方針を変えてみた。
ついでなので海外製の WordPress テーマを自力で日本語化する手段を紹介しておこうと思う。使用するソフトは Windows 用の Poedit となる。
一つ条件としては日本語化したいと思うテーマが gettext 関数を用いた文字列の処理を行っている事となる。これは本記事で紹介する手順で最終的に英文のリストが検出されなければ NG な結果であると分かる。もっと手早く知りたければテーマのソースから ”__” (アンダーバー 2 つ) か ”_e” (アンダーバーと e) の何れかが文字列の前に入っているか否かでも判別が出来る。
さて、前置きはこのくらいにしておいて準備を進める。
Poedit のダウンロード
Poedit – Gettext Translations Editor
上記オフィシャルサイトからダウンロードを行って Windows にインストールを行う。実行ファイルを開けばインストーラーが起動するので、無心で「次へ」をやっていくだけで問題ない。
作業フォルダの準備とテーマのコピー
どこか適当な所に作業を行う専用のフォルダがあった方がやりやすいので、作業フォルダを適当に作ってその中に必要なテーマをフォルダ毎コピーしておく。
子テーマを使用している場合は親テーマの方をコピーする事。
Poedit を起動して新規カタログ作成と設定
スタートメニューやデスクトップのショートカットより Poedit を起動したら、まずはメニューの「ファイル – 新規カタログ…(N)」をクリックする。
最初に出てくるダイアログは翻訳言語の設定になる。日本語にしたいのでそのまま日本語で OK をクリック。
これだけでカタログは作成される形になるので、ここで一旦保存を行っておく事。
保存するファイル名はデフォルトでは「ja_JP.po」となっているが、このままだと WordPress から認識されないので必ず「ja.po」に変更をする。
保存先は作業フォルダ直下で大丈夫だろう。
続いてメインウィンドウの「ソースから抽出」をクリックする事で「カタログの設定」に移る。
「カタログの設定」ウィンドウが開いて「ソースの検索パス」タブが有効になっている。
ここで文字列抽出を行うフォルダを追加する必要がある。
予めコピーしておいた WordPress のテーマが入ったフォルダを選択すると次の様になる。
なにやら「!」と表示があるが、その機能は有料版でなければ使えないから今回は無視する。
次に「ソース中のキーワード」タブをアクティブにして「追加キーワード」の設定を行う。
キーワードは 2 つ。”__” と ”_e” に。アンダーバー 2 つの物とアンダーバーに e になる。
ここまでで設定は完了。カタログ設定ウィンドウで OK をクリックすると自動的に文字列抽出が行われて翻訳作業に入ることが出来る。
翻訳作業
ここから先は翻訳をひたすら行っていく事になる。「ソーステキスト」より翻訳を行いたい文章を選択し、ウィンドウ下部の「翻訳」の欄に対応する日本語を打ち込んで行けば良い。
Poedit の標準設定だとカタログ (ja.po) の保存を行うと自動で mo ファイル (ja.mo) にコンパイルして保存してくれるから便利。コンパイルされた mo ファイルは po ファイルと同じフォルダに出来上がるので覚えておくと良い。
翻訳ファイルの適用
コンパイルされた ja.mo をテーマファイルにある translation ディレクトリ以下へコピーするだけで良い。自動で認識されて表示に適用されるはずだ。
子テーマを使用している場合は親テーマ用に作った ja.mo をそのまま子テーマのディレクトリの translation 以下にコピーする。こうする事で、親となるテーマが更新されても手を加える必要がなくなる。
翻訳作業の注意点
翻訳したい文章中に ”%s” だとか ”%1$s” といった記述が見られるが、ここには「何かの文字列が入りますよ」という事になるのでこの部分は変更せずに翻訳後にもそのままコピペした方が良いだろう。
例えば次の様な場合、%s にはログインユーザー名が入るので、それに合わせて文言を翻訳する事になる。
しかし、%s へ実際に何が入ってくるのか分かりづらい事もあるので、ソーステキスト上で右クリックをしてどのファイルに含まれている文字列なのかを見た上で推測するのも良いし、直接ソースをみて判断するのも良いだろう。
コメント