プラグインのヘッダー情報を国際化対応しよう

プラグインのヘッダー情報を国際化対応しよう - プラグインを公開する際は忘れずに。

説明

バージョン4.8がリリースされてひと段落。あらためてプラグイン一覧ページを見てみると「Akismet」が「Akismet Anti-Spam (アンチスパム)」と表示されていた。説明文だけじゃなくプラグイン名も国際化対応できたのね。

国際化対応はどこで

さてプラグイン一覧ページに表示される基礎情報は、そのプラグインのメインファイルの冒頭部分にコメントとして記述することになっている。「Akismet」の場合は次の通りである。

/*
Plugin Name: Akismet Anti-Spam
Plugin URI: https://akismet.com/
Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from spam</strong>. It keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key.
Version: 3.3.2
Author: Automattic
Author URI: https://automattic.com/wordpress-plugins/
License: GPLv2 or later
Text Domain: akismet
*/

これらの内容がプラグイン一覧ページでは、「Akismet Anti-Spam (アンチスパム)」だったり、「何百万もの利用実績がある Akismet は……」といった感じに表示されている。

プラグインのヘッダー情報はget_file_data関数で取得でき、これで取得した情報はまだ英語のままである。ではどこで国際化対応しているのかと調べてみると、管理画面用関数のget_plugin_data関数(/wp-admin/includes/plugin.php)でget_file_data関数を呼び出し、その後で国際化対応していた。現状、国際化の対象は次の6つだった。

キー内容
Plugin Nameプラグイン名
Plugin URIプラグイン紹介ページのアドレス
Versionバージョン
Description説明文
Author作者名
Author URI作者紹介ページのアドレス

この国際化対応には各プラグインの国際化ファイルを利用するが、その国際化ファイルが読み込まれているかをis_textdomain_loaded関数で調べ、読み込まれていなければload_plugin_textdomain関数で読み込むようになっていた。その際に重要になるのが、次に示す2つのヘッダー情報である。

キー内容
Text Domainテキストドメイン名
Domain Path国際化ファイルのパス名

「Text Domain」の内容は自プラグインのテキストドメイン名をそのまま指定すればよい。「Domain Path」については国際化ファイルが自プラグインとメインファイルと同じディレクトリ内か、Akismetと同じように/wp-content/languages/pluginsディレクトリにあるのであれば指定する必要はない。自プラグイン以下のディレクトリにあるのであればそのディレクトリ名を指定しなければならない。例えば、「languages」ディレクトリに国際化ファイルがあるのであれば「/languages」と記述する。これらを適宜追加しておくことで、プラグインの有効・無効状態に関わらず国際化対応することができる。

現在、私自身いくつかのプラグインを公開しているが、国際化対応は各プラグインのプロパティページのようなプログラム部分のみで、ヘッダー情報については未対応だった。ここで深く反省し、今後アップデートする際は忘れずに対応していきたい。

関連

お勧めコンテンツ

wp_encode_emoji(2015年4月24日 登録)

string wp_encode_emoji( string $content )
コンテント内の絵文字コードをHTMLエンティティに変換する。

wp_footer(2010年9月8日 登録)

void wp_footer( )
wp_footerアクションを実行する。

remove_meta_box(2011年8月25日 登録)

void remove_meta_box( string $id, string $page, string $context )
投稿ページのメタボックスを削除(非表示)する。

add_comments_page(2011年5月30日 登録)

mixed add_comments_page( string $page_title, string $menu_title, mixed string $capability, string $menu_slug [ , mixed $function = '' ] )
コメントメニューにサブメニューを登録する。

get_the_permalink(2014年4月18日 登録)

string get_the_permalink( [ mixed $id = 0 [ , bool $leavename = false ] ] )
現在の投稿情報のパーマリンクを取得する。

最終更新日時 : 2017-06-19 15:35