Joomla JText在javascript中的翻译

时间:2013-06-11 14:53:17

标签: php javascript joomla translation

我正在移植一个从Joomla 1.5到2.5的JUMI元素中运行的小型Web应用程序(PHP + Javascript)。

基本上在翻译1.5中,我们使用jsJText在Javascript中提供翻译后的字符串。根据我在几个教程中的理解,2.5应该使这更容易,因为Javascript中的翻译支持已经集成。

在检查了几个网站和谷歌搜索结果后,他们几乎都说:首先使用JText :: script('key')将你的字符串添加到PHP的javascript语言存储中;然后使用Joomla.JText ._('key')或Joomla.JText.strings.key在javascript中检索它们。

然而,我在使用它时遇到了很多麻烦。 PHP中的翻译工作得非常好,但在Javascript中我最终得到的是未定义的而不是正确的翻译文本。

我拍了一张屏幕截图,说明了我的方法和问题。 enter image description here

包含语言字符串的PHP文件包含在显示内容的主PHP页面中。这几乎是页面中的第一个。

我很确定我在某个地方犯了一个愚蠢的错误,但老实说在我的生命中找不到它。任何可以指出我在哪里搜索的正确方向的人都将非常感激。

谢谢。

20130612-编辑:

关于我在评论中尝试过的内容的更多信息:

  • 启用joomla debuggin没有帮助。那里没有错误。
  • Mootools已加载,版本1.4.5。

我也尝试过一些非正统的东西。 JText :: script行列表位于单独的PHP文件中。我已经尝试将该文件包含在随机模块中,并在与我的Web应用程序相同的页面上显示该模块。那时它确实有效。但是,这并不是解决问题的方法,而只是一种相当肮脏的解决方法。

然而,该测试确实证实代码本身没有真正的问题。我只是在某处遗漏某些东西。仍然难以忘记什么。关于它可能是什么的任何指示?

20130612-Edit2:

当包含在随机模块中时,以及在我的webapp中时,我已经比较了页面源。唯一的区别似乎是以下Javascript被添加到页面中,我认为应该由JText :: script代码生成...所以...我真的很难过。

    <script type="text/javascript">
      (function() {
        var strings = {"PA_ITEM_BLOWD":"Blow-dryer"...};
        if (typeof Joomla == 'undefined') {
          Joomla = {};
          Joomla.JText = strings;
        }
        else {
          Joomla.JText.load(strings);
        }
      })();
    </script>

0 个答案:

没有答案