【问题标题】:Cakephp multilanguage support in JavascriptJavascript 中的 Cakephp 多语言支持
【发布时间】:2011-12-29 06:17:24
【问题描述】:

使用 cakephp 时如何在 js 中给出语言字符串(我使用的是 cakephp 版本 2)?我知道,这可以通过以下方式完成。

<script>
     var LABEL_LOGIN = '<?php echo __('Login'); ?>';
</script>

我想将我的 js 代码与我的视图文件分开。如果我在 .js 文件中做同样的事情(因为我使用的是全局变量)有什么问题吗?在js中应用多语言还有其他好的解决方案吗?

【问题讨论】:

  • 您将无法在 .js 文件中使用 php..

标签: cakephp


【解决方案1】:

Cake 不支持开箱即用的 JS 中的 i18n。我宁愿推荐引入一些语法兼容的 i18n JS 插件,即也使用全局 __ 函数。 然后你就可以用同样的方法来解析 i18n 键的所有源代码了。

【讨论】:

    【解决方案2】:

    我能想到的唯一更简单的方法是:

    Create some element, say langs.ctp, and add your global js vars in there, like <script type="text/javascript"> var LABEL_LOGIN = '<?php echo __('Login'); ?>'; var LABEL_LOGOUT = '<?php echo __('Logout'); ?>'; // and so on </script> and then load this element in your layout, like, in your layout inside head tag <?php echo $this->element("langs"); then you could use your global js vars

    希望对你有帮助

    【讨论】:

    • 感谢您的帮助.. 但是我需要将我的 js 与我的视图文件分开.. 在这种方法中,如果要注册,我是否需要为注册语言字符串创建另一个 ctp 文件?因为,我无法在一个 ctp 文件中加载所有语言字符串..
    • 是的,您可以创建不同的 ctp 来添加视图特定的 js 变量,然后分别在特定页面中使用,这样就无需在单个 ctp 文件中添加所有变量..
    猜你喜欢
    • 2015-07-23
    • 1970-01-01
    • 2011-11-08
    • 2011-02-25
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多