前提知識について
この記事はPoeditを使用してphpファイル内の__()と_e()を抽出する方法は知っている前提で記載します。「そのそも多言語の方法が全然分からないよ」という方は以下の記事にまとめてあるので、そちらをまずご覧ください。
サンプルコード
今後は以下のサンプルコードを用いて説明します。test.php
<?php
/*
Plugin Name: test
Description: test
Version: 0.1
Author: Aresei
Author URI: https://www.aresei-note.com/
*/
load_plugin_textdomain("test", false, dirname(plugin_basename( __FILE__ )) . "/languages");
function test_execMenu() {
include("test.html");
}
function test_addMenu() {
add_options_page(
"test",
"test",
"manage_options",
"test",
"test_execMenu"
);
}
add_action("admin_menu", "test_addMenu");
var_dump(__("test in php", "test"));
?>
test.html <html>
<head>
</head>
<body>
<?php _e("test in html", "test"); ?>
</body>
</html>
上記のサンプルコードのプラグインメニューページを開くと以下のように表示されます。
そのままPoeditで__()と_e()を抽出すると…?
下図のようにtest.phpとtest.htmlを対象ファイルにし、コードから抽出してみます。

HTMLファイル内の__()と_e()を抽出する方法
HTMLファイル内の__()と_e()が抽出できない原因はよくは分かりませんが、以下の手順でHTMLファイルも抽出できるようになります。Poeditのツールバー → 設定 → 抽出ツール → + を選択します。


- php in html
- *.html
- xgettext -L PHP –add-comments=TRANSLATORS: –force-po -o %o %C %K %F
- -k%k
- %f
- –from-code=%c
下図のようにHTML内の翻訳対象テキストが抽出できていればOKです。

サンプルコードの結果
さきほどのサンプルコードが問題なく翻訳されることを確認しましょう。今回は以下のように翻訳テキストを設定しました。


まとめ
この記事ではPoeditでHTMLファイル内の__()と_e()を抽出して翻訳する方法を紹介しました。困っている方の参考になれば幸いです。