php - 如何在 Zend Framework 中的 javascript 文件中使用翻译?

标签 php javascript zend-framework localization

如何在 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/

相关文章:

javascript - 突出显示 ASP.NET Core 的 Kendo UI 网格中的空单元格

javascript - 使用 jquery 加载时同时动态设置不同 HTML 页面的按钮文本

php - 用 php 检查 URL 的最后一部分

php - 默认情况下,Laravel 迁移使我的所有表列不为空。如何允许某些列为空?

php - 不能对重载对象或字符串偏移量使用赋值运算符

javascript - 结果到处都变了

php - 用户 'root' @'localhost' 的访问被拒绝(使用密码 : NO);

javascript - 仅当选中特定数量的复选框时才自动提交表单

zend-framework - 自定义 zend_form 验证码输出?

php - 使用 ZF2 和 Doctrine2 将 SQL Server 表转换为 MySQL