この記事は最後に更新してから1年以上経過しています。
説明
バージョン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」と記述する。これらを適宜追加しておくことで、プラグインの有効・無効状態に関わらず国際化対応することができる。
現在、私自身いくつかのプラグインを公開しているが、国際化対応は各プラグインのプロパティページのようなプログラム部分のみで、ヘッダー情報については未対応だった。ここで深く反省し、今後アップデートする際は忘れずに対応していきたい。
最終更新 : 2018年05月27日 10:43
関連
お勧め
add_shortcode(2018年5月27日 更新)
get_user_setting(2022年1月31日 更新)
have_posts(2018年5月27日 更新)
in_category(2018年5月27日 更新)
add_feed(2024年6月24日 更新)