概要
load_textdomain
関数は、WordPressが多言語対応を実現するために使用する関数で、特定の言語用の翻訳ファイル(.moファイル)をロードします。この関数は、プラグインやテーマが提供する翻訳リソースをロードする際によく使われ、以下のような機能に活用されます。
- プラグインやテーマの国際化(i18n)をサポート
- ユーザーインターフェースの多言語化
- カスタムポストタイプの翻訳
- オプションページの翻訳
- ウィジェットのラベルの翻訳
- ショートコードの翻訳
- バリデーションメッセージの翻訳
- エラーメッセージの翻訳
構文
load_textdomain( $domain, $mofile );
パラメータ
$domain
(string) – ネームスペース、特定のプラグインまたはテーマを識別するために使用します。$mofile
(string) – ロードする.moファイルへの完全なパスまたは相対パスです。
戻り値
成功した場合はtrue
を、失敗した場合はfalse
を返します。
関連する関数
使用可能なバージョン
この関数は、WordPress 2.1以降で利用可能です。
コアファイルのパス
この関数は、wp-includes/l10n.php
ファイルに含まれています。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | 〇 |
registered_post_type | 〇 |
plugins_loaded | 〇 |
wp_roles_init | |
setup_theme | 〇 |
after_setup_theme | 〇 |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | |
wp | 〇 |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプル1: プラグインのテキストドメインをロードする
function my_plugin_load_textdomain() {
load_textdomain('my-plugin-domain', dirname(__FILE__) . '/languages/my-plugin-domain-ja.mo');
}
add_action('plugins_loaded', 'my_plugin_load_textdomain');
このサンプルは、プラグインの翻訳ファイルをロードして、特定の言語に適切な表示を提供します。
サンプル2: テーマのテキストドメインをロードする
function my_theme_load_textdomain() {
load_textdomain('my-theme-domain', get_template_directory() . '/languages/my-theme-domain-ja.mo');
}
add_action('after_setup_theme', 'my_theme_load_textdomain');
このサンプルでは、テーマの言語ファイルを指定してロードします。
サンプル3: カスタムウィジェットの翻訳を追加する
class My_Custom_Widget extends WP_Widget {
function __construct() {
load_textdomain('my-widget-domain', dirname(__FILE__) . '/languages/my-widget-domain-ja.mo');
parent::__construct('my_custom_widget', __('My Custom Widget', 'my-widget-domain'));
}
}
ここでは、カスタムウィジェットの表示名を翻訳で設定しています。
サンプル4: ショートコードのテキストドメインを設定
function my_shortcode_function() {
load_textdomain('my-shortcode-domain', dirname(__FILE__) . '/languages/my-shortcode-domain-ja.mo');
return __('Hello, World!', 'my-shortcode-domain');
}
add_shortcode('my_shortcode', 'my_shortcode_function');
このコードは、ショートコードが翻訳されたメッセージを表示することを可能にします。
サンプル5: カスタム投稿タイプの翻訳を行う
function create_my_custom_post_type() {
load_textdomain('my-custom-post-type-domain', dirname(__FILE__) . '/languages/my-custom-post-type-domain-ja.mo');
register_post_type('my_custom_type', array(
'labels' => array(
'name' => __('My Custom Types', 'my-custom-post-type-domain'),
),
'public' => true,
));
}
add_action('init', 'create_my_custom_post_type');
このサンプルでは、カスタム投稿タイプのラベルを翻訳しながら登録しています。