WordPressで多言語サイト化(mo、po編)


mo、poファイルを用意

Poeditソフトなどを使ってja.poからja.moを生成する。

◆ja.poを作る。

UTF8で。で、中身はこれを書く。

msgid "test"
msgstr "テスト"

◆Poeditでja.poを開き、moに翻訳する。

 

mo、poファイルをサーバに設置

◆FTPを使って、テーマフォルダの中のlanguagesフォルダにアップする。

/wp-content/themes/[テーマ名]/languages/ja.mo
/wp-content/themes/[テーマ名]/languages/ja.po

 

翻訳ファイルを読込むように設定

◆functions.php

// 多言語辞書ファイル
load_theme_textdomain( '[テーマ名]', get_template_directory().'/languages'  );

 

多言語にしたい箇所に設定

◆page.phpとか

// 翻訳テキストを表示する
<p><?php _e( 'test','[テーマ名]' ); ?></p>
// HTML エンティティがエンコードされたテキスト
<p><?php esc_attr_e( 'test','[テーマ名]' ); ?></p>

// 翻訳テキストを取得する
<p><?php echo __( 'test','[テーマ名]'); ?></p>

 

各言語はこちら

日本語 [ja]
英語 (米国) [en_US]
中国語 (中国) [zh_CN]
中国語 (台湾) [zh_TW]
韓国語 [ko_KR]
アラビア語 [ar]
ドイツ語 [de_DE]
イタリア語 [it_IT]
ロシア語 [ru_RU]

 

言語別画像とかの扱い

日本語、英語辞書にそれぞれこんな風に定義をしておく。

◆ja.po

msgid "lang"
msgstr "-jp"

◆en_US.po

msgid "lang"
msgstr "-en"

◆page.phpとかで試しに表示させてみましょう。

<?php _e( 'lang','multilingual'); ?>

「-jp」とか「-en」と表示されましたか?

◆画像の言語別表示はこんな感じに設定。

<img src="img/gazou<?php _e( 'lang','multilingual'); ?>.jpg" alt="" />

画像は言語別に用意しましょう。

日本語用 : gazou-jp.jpg
英語用 : gazou-en.jpg

 

参考

◆現在のロケールを取得

<?php $locale = get_locale(); /* 現在のロケールを取得 */ echo $locale; ?>

こちらは、日本語が「jp」、英語が「en_US」と表示されます。