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

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

説明

バージョン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」と記述する。これらを適宜追加しておくことで、プラグインの有効・無効状態に関わらず国際化対応することができる。

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

関連

お勧めコンテンツ

clean_taxonomy_cache(2017年11月30日 登録)

void clean_taxonomy_cache( string $taxonomy )
指定したタクソノミー関連のキャッシュをクリアする。

maybe_hash_hex_color(2012年6月14日 登録)

string maybe_hash_hex_color( $color )
'#'のついていない16進数のカラー値の先頭に'#'をつける。

wp_get_comment_status(2013年8月23日 登録)

mixed wp_get_comment_status( $comment_id )
コメントのステータスを取得する。

wp_enqueue_script(2011年12月22日 登録)

void wp_enqueue_script( string $handle [ , string $src = false [ , array $deps = array() [ , string $ver = false [ , bool $in_footer = false ] ] ] ] )
スクリプト(JavaScript)の重複出力を回避するために、使用するスクリプトを出力用のキューに入れる。パラメータ$srcが指定された場合は、グローバル変数$wp_scriptsに登録してから出力用のキューに入れる。

get_the_post_type_description(2017年11月17日 登録)

string get_the_post_type_description()
投稿タイプアーカイブページ向けの説明を取得する。

最終更新日時 : 2017-08-04 17:10