PersoniumのOSS開発で下記の問題を解決したので、みなさんに共有します。
問題
メッセージ/ラベルを英語に翻訳してHTMLタグに書き込みましたら、言語(例:日本語)を変換したでも該当メッセージ/ラベルは英語のままです。
悪い使い方
-
下記のコマンドを実行する。
$('dispMsg').html(i18next.t("msg.error.fileNotFound");
-
HTMLの結果。
<div id="dispMsg">File not found.</div>
-
日本語に変換
i18next.changeLanguage("ja"); $('[data-i18n]').localize(); // need jQuery-i18next
-
HTMLの結果(英語のまま)
<div id="dispMsg">File not found.</div>
正しい使い方
-
下記のコマンドを実行する。
$('#dispMsg').attr("data-i18n", "msg.error.fileNotFound") .localize();
-
HTMLの結果。
<div id="dispMsg" data-i18n="msg.error.fileNotFound">File not found.</div>
-
日本語に変換
i18next.changeLanguage("ja"); $('[data-i18n]').localize(); // need jQuery-i18next
-
HTMLの結果(日本語になった!!!)
<div id="dispMsg" data-i18n="msg.error.fileNotFound">ファイルがないです。</div>