如何在 JavaScript 文件中使用翻译?
我有一个 formatter.js
文件:
function xyz(id)
{
if(confirm("Vill du radera ?")){
location.href = "/student/files/delete/" + id;
}
}
这里我想使用“vill du radera?”的翻译。
在我的 view.phtml
文件中,我使用如下内容:
<?=$this->translate->_("Select Template")?>
工作正常...
最佳答案
如果你在 *.js 包含的文件中做了很少的翻译,当你知道将使用哪些键时,你可以在 View 中设置一个 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];
}
}
这是 Controller :
//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;
}
}
关于php - 如何在 Zend Framework 中的 javascript 文件中使用翻译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11465207/