包括多语言js文件到PHP文件

包括多语言js文件到PHP文件,php,javascript,multilingual,Php,Javascript,Multilingual,只需要朝正确的方向推一下 我正在用PHP和JavaScript构建一个多语言网站。当使用javascript(AJAX)向数据库发送评论/消息时,我需要向用户显示成功或错误消息。由于使用了3种不同的语言,我在使用代码的每个页面上编写代码,并使用PHP语言变量来翻译成功/错误消息 一切都很好,但是当用户查看页面的源代码时,他会看到一长串我在网站上用于不同功能的函数 我希望在JS文件中包含所有内容: 但是PHP语言变量就不能工作了 我现在唯一想到的是用不同的语言制作不同的JS文件: myjs_en

只需要朝正确的方向推一下

我正在用PHP和JavaScript构建一个多语言网站。当使用javascript(AJAX)向数据库发送评论/消息时,我需要向用户显示成功或错误消息。由于使用了3种不同的语言,我在使用代码的每个页面上编写代码,并使用PHP语言变量来翻译成功/错误消息

一切都很好,但是当用户查看页面的源代码时,他会看到一长串我在网站上用于不同功能的函数

我希望在JS文件中包含所有内容:

但是PHP语言变量就不能工作了

我现在唯一想到的是用不同的语言制作不同的JS文件: myjs_en.js

myjs_fr.js

myjs_nl.js

以及检查用户选择的语言,包括3个文件中的一个

或者我还有其他的选择吗


谢谢你的帮助

您最好从服务器端提供语言支持。如果愿意,Zend_Framework的组件可以用作独立库

根据文件:

“在多语言应用程序中,内容必须翻译成多种语言,并根据用户的语言显示内容。PHP已经提供了几种处理此类问题的方法,但PHP解决方案存在一些问题:

  • 不一致的API:对于不同的源格式没有单一的API。例如,gettext的使用非常复杂

  • PHP只支持gettext和本机数组:PHP本身只支持array或gettext。所有其他源代码格式都必须手动编码,因为没有本机支持

  • 未检测到默认语言:如果不深入了解不同web浏览器的背景,则无法检测到用户的默认语言

    Gettext不是线程安全的:PHP的Gettext库不是线程安全的,不应该在多线程环境中使用。这是由于Gettext本身的问题,而不是PHP的问题,但这是一个存在的问题

Zend_Translate没有上述问题。这就是为什么我们建议使用Zend_Translate而不是PHP的本机函数。Zend_Translate的好处是:

  • 支持多种源格式:Zend_Translate支持多种源格式,包括PHP支持的源格式,以及其他格式,包括TMX和CSV文件

  • 线程安全的gettext:Zend_Translate的gettext阅读器是线程安全的。在多线程环境中使用它没有问题

  • 简单而通用的API:Zend_Translate的API非常简单,只需要少量函数。因此,它易于学习和维护。所有源格式都以相同的方式处理,因此如果源文件的格式从Gettext更改为TMX,则只需更改一行代码即可指定存储适配器

  • 检测用户的标准语言:Zend_Translate可以检测并使用访问站点的用户的首选语言

  • 自动源检测:Zend_Translate能够检测和集成多个源文件,并根据目录或文件名检测要使用的区域设置。”


    • 您最好从服务器端提供语言支持。如果愿意,Zend_Framework的组件可以用作独立库

      根据文件:

      “在多语言应用程序中,内容必须翻译成多种语言,并根据用户的语言显示内容。PHP已经提供了几种处理此类问题的方法,但PHP解决方案存在一些问题:

      • 不一致的API:对于不同的源格式没有单一的API。例如,gettext的使用非常复杂

      • PHP只支持gettext和本机数组:PHP本身只支持array或gettext。所有其他源代码格式都必须手动编码,因为没有本机支持

      • 未检测到默认语言:如果不深入了解不同web浏览器的背景,则无法检测到用户的默认语言

        Gettext不是线程安全的:PHP的Gettext库不是线程安全的,不应该在多线程环境中使用。这是由于Gettext本身的问题,而不是PHP的问题,但这是一个存在的问题

      Zend_Translate没有上述问题。这就是为什么我们建议使用Zend_Translate而不是PHP的本机函数。Zend_Translate的好处是:

      • 支持多种源格式:Zend_Translate支持多种源格式,包括PHP支持的源格式,以及其他格式,包括TMX和CSV文件

      • 线程安全的gettext:Zend_Translate的gettext阅读器是线程安全的。在多线程环境中使用它没有问题

      • 简单而通用的API:Zend_Translate的API非常简单,只需要少量函数。因此,它易于学习和维护。所有源格式都以相同的方式处理,因此如果源文件的格式从Gettext更改为TMX,则只需更改一行代码即可指定存储适配器

      • 检测用户的标准语言:Zend_Translate可以检测并使用访问站点的用户的首选语言

      • 自动源检测:Zend_Translate能够检测和集成多个源文件,并根据目录或文件名检测要使用的区域设置。”

      谢谢你的帮助