如果您在* .js文件包含的文件做一些翻译,你可以设置一个JS例如:
//viewscript:
<script ...>
var translation = <?php echo Zend_Json::encode($this->translate->_("Select Template")) ?>;
</script>
您只需确保该变量在需要之前可用即可使用。
但是如果你需要做很多翻译,一种方法是在你的* .js文件中添加一个translate(key)
函数。此函数将执行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;
}
}
babubaba嗨,你好,感谢ü这么多..我会尝试你的方式,, – kiran 2012-07-13 07:52:09
其实,如果你使用真正的AJAX,第二种解决方案将不会工作。您必须执行* S * JAX调用(同步)。我的错。 – bububaba 2012-07-13 07:57:56