プログラミングの役立つ記事をお届けします

【無料】WordPressのプラグイン開発で翻訳ファイルを作る方法

WordPressのプラグイン開発をしているんだけど翻訳ファイルってどうやって作るのかな?

こんにちは、カフーブログのタカフです。

今僕の方では世界で通用する(と信じている)WordPressプラグインを開発中なのですが、WordPressプラグインを世界展開するとなると英語対応はマストですよね。

ということで実際にWordPressプラグインの翻訳ファイルの作り方を調べたので、本記事ではその方法を解説したいと思います。

因みに余談ですが今やWordPressは世界の43%のサイトで使われているそうです。(引用:kinsta.com)

僕は2012年くらいからWordPressを触り始めていて、2022年の今現在では全盛期はもう過ぎ去ったかなぁなんて勝手に思っていましたが、実はWordPressのシェア数は安定して伸び続けていましたね

むしろ誰もが使っている状態😅

ということは、WordPressにまだビジネスチャンスはありそうです。

ゴールドラッシュの時代に本当に稼いでいたのはジーンズを売っていたリーバイ・ストラウスであるように、

世界中でWordPressが使われているなら、それを便利にするWordPressプラグインを公開するとそこにビジネスチャンスが広がりそうです✨

余談はここまでにしてそれでは本編です。

WordPressプラグインの翻訳ファイル

WordPressのプラグインを外国語対応するにはするには以下の翻訳ファイルを用意します。

ファイル種別 説明
potファイル Portable Object Template ファイル
poファイルを作る為のテンプレートファイルです。
poファイル Potable Object ファイル
テキストベースの翻訳ファイルです。言語毎に用意します。
moファイル Machine Object ファイル
poファイルからコンパイルして生成したものです。
WordPress自体はこのファイルを読み込みます。

厳密にはmoファイルがあればWordPressで翻訳化されるのですが、moファイルを作る為にpoファイルが必要であり、poファイルを作る為にpotファイルが必要なので、結局全部用意します。

そして、通常potファイルを作るには以下2通りの方法があります。

  1. 翻訳アプリ「poedit」の有料版で生成する方法
  2. WordPress公式で無料配布しているpot生成スクリプトを使用する方法

たくさんの翻訳作業をするならpoeditの有料版を購入してもいいと思うのですが、1つ2つのプラグインの翻訳作業なら2.のWordPress公式から無料配布しているスクリプトを使うで十分です。

たまにしか使わないなら無料の方がいいに越したことはないですよね。

poeditの有料版は必要になったら買えばいいだけの話です。

翻訳ファイルの作成(はじめての翻訳作業)

翻訳関数__()の記述

WordPressプラグイン内の文字の翻訳には、__()という関数を使います。

例えば、以下のようにデータベースエラーという文字列を渡すべきところを翻訳対応したい場合に、この関数を使って記述します。

// $msg = "こんにちは";	// いつもなら日本語で文字列を渡しているところを、
$msg = __("Hello", "[plugin name]");	// __()を使ってデフォルトでは英語文字を渡す
echo $msg;

これでこのプラグインの日本語翻訳ファイルを用意すれば、日本語以外では”Hello”と表示され、日本語環境では翻訳ファイルの文字列が表示されます。

この後行うpotファイルの生成ではこの__()の文字列を自動抽出してくれるので、プラグイン内に最低1つは__()を埋め込んでおきましょう。

もちろん、この時点で翻訳対応する文字列は全て__()で記述するのがベターです。(英語訳を考えないといけないですが…。)

Subversion(svn)のインストール

さて、これからpotファイルを生成していきますが、前述の通りWordPressが公式で配布している無料のpotファイル生成スクリプトを取得します。

そのスクリプトを取得するのにSubversion(svn)が必要なのでSubversionをPCにインストールします。

Subversionは以下URLよりダウンロードします。

https://tortoisesvn.net/downloads.html

image-20220719174149928

このTortoiseSVNをインストールすればsvnコマンドが使えるようになります。

インストールしたらコマンドプロンプトやPowerShellで以下のコマンドを打ってみて下さい。バージョン番号が出ればインストール完了です。

> svn --version
svn, version 1.14.2 (r1899510)
   compiled Apr  9 2022, 14:18:14 on x86-microsoft-windows

makepot.phpスクリプトのチェックアウト

SVNをインストールしたらpotファイル生成スクリプトのmakepot.phpを取得(チェックアウト)します。

makepot.phpについてはWordPressのCodexのサイトにPOTファイルの作成の章で書かれています。

ここに書かれてあるとおり、まだ公開前のプラグインの場合は公式リポジトリに登録していないので、SVNを使ってチェックアウトしてスクリプトを取得します。

以下のコマンドを実行します。

> cd path/to/your/wordpress_dir
> svn co http://i18n.svn.wordpress.org/tools/trunk/

このプラグインを含むWordPressディレクトリなどに移動して、そこでsvnコマンドでこのURLをco(チェックアウト)します。

これでtrunkディレクトリをダウンロード出来ます。

gettextのインストール

makepot.phpを実行するには、WordPressのCodexのサイトにも書かれてある通りgettextコマンドが必要です。

僕の場合はプラグイン開発環境がDocker環境だったのでDockerfile内にgettextをインストールしましたが、Windows・MacのローカルPCでの開発環境の場合はそのPCにgettextをインストールすればOKです。

以下のサイトが参考になるかと思います。

Windowsでgettextをインストールする方法

Macでgettextをインストールする方法

WindowsはPowershell経由で、Macの場合はHomeBrewですね。

makepot.phpでpotファイルの作成

makepot.phpを実行出来る環境が整ったら実際にmakepot.phpを実行します。

ポイントはそのプラグイン直下にlanguagesディレクトリを作っておいてそこに移動し、makepot.phpを実行することです。

> cd /path/to/your/wp-content/plugins/[plugin name]/languages/
> php /path/to/your/wordpress_dir/trunk/makepot.php wp-plugin /path/to/your/wp-content/plugins/[plugin name]

これでlanguagesディレクトリにpotファイルが生成されるはずです。

poeditのインストール

potファイルが生成されたら次は実際に翻訳作業ですが、この翻訳作業でpoeditの無料版を使います。

以下のURLからダウンロード&インストールしましょう。

https://poedit.net/

image-20220802183854526

インストールしたら開きます。

image-20220802184150643

poファイルとmoファイルの作成

poeditアプリを開いたら以下の画面が出るので、[新規作成]をクリックします。

image-20220802184004284

ファイルを開くダイアログが表示されるので、先程作成したpotファイルを選択します。

image-20220802184336572

翻訳言語の選択ダイアログが出るので「日本語」を選んでOKをクリックします。

image-20220802184537714

potファイルにはプラグイン内の__()で記述した文字列が出るので、対訳の欄に日本語訳を記述していきます。

image-20220802184708479

翻訳作業が完了して保存すれば、potファイルと同ディレクトリに自動でpoファイルとmoファイルを出力保存してくれます。

自動でmoファイルを生成しない場合はアプリの[設定]の以下のチェックをONにすれば生成されるようになります。

ファイルが生成されると以下のようになります。ファイル名に-jaがついているのが日本語翻訳ファイルです。

image-20220802185449468

これでWordPressの管理画面でログインユーザーの言語に合わせて翻訳文字が表示されます。

poファイルの翻訳作業を途中まで終えて再開する場合は、poeditを開いて「ファイルを閲覧」をクリックして、poファイルの方を開きます。

image-20220802185747340

これで翻訳作業の再開が出来ます。

翻訳ファイルの更新(翻訳すべき文字が増えたら)

上記までは初めて翻訳ファイルを作成する手順でしたが、プラグインのアップデートに伴い翻訳文字が増えたり変わったりすることがあると思います。

ここではその手順について解説します。

翻訳関数__()の追加

プラグインのアップデートに伴って__()関数が増えていきます。

$msg = __("Thank you", "[plugin name]");
echo $msg;

この作業はプラグイン内容に従って引続き行います。

potファイルの再生成

プラグイン内の__()に変更があったので再度potファイルを生成します。

初回生成時と同様にそのプラグインのlanguagesディレクトリに移動して、makepot.phpを実行します。

> cd /path/to/your/wp-content/plugins/[plugin name]/languages/
> php /path/to/your/wordpress_dir/trunk/makepot.php wp-plugin /path/to/your/wp-content/plugins/[plugin name]

poファイルを開いてpotファイルの読み込み

ここがはじめての作業と異なるので要注意です。

今回は「ファイルを閲覧」をクリックして前回作成したpoファイルの方を開きます。

image-20220802185747340

メニューで[翻訳]ー[POTファイルから更新]をクリックして再生成したpotファイルを選択します。

 

 

そうすると、翻訳対象テキストが追加されます。

image-20220802190757279

新しく追加されたテキストに対してまた対訳欄に翻訳文字を記述して保存すれば、poファイルとmoファイルが出力保存されます。

これで翻訳ファイルの更新は完了です。

まとめ

以上、WordPressプラグイン開発で翻訳ファイルを作成する手順でした。

poeditアプリを購入すればpotファイル作成の手順はアプリだけで完結出来る作業ですが、この手順通りにやれば十分無料の範囲で大丈夫そうですよね。

翻訳ファイルを追加すればWordPressプラグインの世界展開は大分距離が近くなり、新たなビジネスチャンスが増えることでしょう!

現場からは以上です!

コメントを残す

メールアドレスが公開されることはありません。