如果您在 *.js 包含的文件中进行很少的翻译,那么当您知道将使用哪些键时,您可以在视图中设置一个 JS 变量,例如:
//viewscript:
<script ...>
var translation = <?php echo Zend_Json::encode($this->translate->_("Select Template")) ?>;
</script>
您只需要确保变量在需要之前可用。
但是如果你需要做很多翻译,一种方法是translate(key)
在你的 *.js 文件中添加一个函数。此函数将执行 AJAX 调用以检索单个键翻译,或者 - 最好 - 许多/所有翻译并将它们存储在一个变量中,以便在第一次翻译时只完成一次到服务器的往返。
//*.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;
}
}