*.js インクルード ファイルでほとんど翻訳を行わない場合、使用されるキーがわかっている場合は、ビューに JS 変数を設定するだけで済みます。次に例を示します。
//viewscript:
<script ...>
var translation = <?php echo Zend_Json::encode($this->translate->_("Select Template")) ?>;
</script>
必要になる前に、変数が使用可能であることを確認する必要があります。
しかし、多くの翻訳を行う必要がある場合、1 つの方法はtranslate(key)
*.js ファイルに関数を追加することです。この関数は、AJAX 呼び出しを実行して、単一のキー翻訳、または (できれば) 多数/すべての翻訳を取得して変数に格納し、サーバーへのラウンドトリップが最初の翻訳で 1 回だけ行われるようにします。
//*.js
var translations = null;
function translate(key) {
if (translations !== null) {
return translations[key];
}
else {
//use AJAX to get translations from server: /translations/serve-json
// ...
translations = ajaxData;
return translations[key];
}
}
そして、ここにコントローラーがあります:
//TranslationsController (for example)
public function serveJsonAction() {
//get translations first
// ...
$this->_helper->json($translations);
}
最終的な用途は次のとおりです。
function xyz(id)
{
if(confirm(translate("VILL_DU_RADERA"))){
location.href = "/student/files/delete/" + id;
}
}