当前位置: 首页 > 知识库问答 >
问题:

使用Gettext()实现Php web应用程序国际化;

卫琛
2023-03-14

我目前正在开发一个PHP Web应用程序,需要有法语和英语版本。我环顾四周,发现Gettext()功能提供了最好的性能。

我生成了我的。使用命令创建pot文件

 xgettext PhpFileToTranslate.php -o NameOfTemplateFile.pot

并成功地生成了一个。锅铲。我使用PoEdit生成消息。采购订单文件和创建的邮件。瞬间

以下是我的服务器文件:

/app
    /locale
        /en_US
              /LC_MESSAGES
              messages.po
              messages.mo
        /fr_FR
              /LC_MESSAGES
              messages.po
              messages.mo
        template.pot

我在php文件中设置了这样的语言环境:

$language = $_SESSION['language'];  //session contains 'fr_FR.UTF-8' or 'en_US.UTF-8'
setlocale(LC_ALL, $language);
bindtextdomain('messages', './locale');  
textdomain('messages');

但我只看到标签,没有看到翻译。。。我试着用'fr_fr'代替'fr_fr.UTF-8'和各种各样的字符串,但它不起作用。

我错过什么了吗?我的服务器是带有Apache和php5的Ubuntu 12.04服务器

共有2个答案

华子航
2023-03-14

除了Bruno所说的,不要忘记重新加载Apache配置(例如,服务apache2重新加载)。我浪费了一些时间来弄清楚它为什么不起作用,只是发现一旦安装了新的语言/区域设置,就必须重新加载Apache配置。

陈淳
2023-03-14

来编译你的。linux上的mo文件您需要在服务器和编译机器上安装区域设置。区域设置是操作系统支持的语言。

如本教程所述:http://dev.jimdo.com/archive-old-blog/tutorial-for-the-easy-use-of-gettext-for-internationalization-of-php-apps/验证您在linux上安装了区域设置

确保要使用的区域设置安装在linux中,并且使用.UTF-8(你想要i18n所以请使用UTF!):

# Example for debian
dpkg-reconfigure locales

--在linux上安装新的区域设置

列出系统上实际安装的语言:

locale -a

安装fr_FR示例:

#List the available i18n locales
less /usr/share/i18n/SUPPORTED

安装区域设置(此处为fr\u fr.utf8)

locale-gen fr_FR.utf8

重新配置系统上的区域设置

sudo  dpkg-reconfigure locales

用PoEdit重新编译你的. mo文件,这样就可以了。确保在服务器和编译. mo文件的机器上安装区域设置。

希望有帮助

 类似资料:
  • 问题内容: 我从Google得知,国际化是使我的Web应用程序使用所有语言的过程。我想了解Unicode的国际化过程,所以我从这里到那里了解了Unicode 。 我能够了解Unicode,即如何将一个字符集设置为编码为字节,然后再将字节解码为字符集。但是我不知道如何进一步前进。我想学习如何比较字符串,还需要知道如何在Web应用程序中实现国际化。有什么建议吗?请指导我。 我的目标: 我的主要目标是开

  • 问题内容: 在我当前的项目中,我们正在考虑逐步淘汰旧的表示层,并用更现代,更知名的东西代替它。由于各种原因,选择了JSP作为技术。可能与Apache Tiles结合使用。我也许应该提到,如果这很重要的话,我们将在后面使用Spring。 国际化是一项要求,特别是在以用户语言显示文本消息方面。令我感到惊讶的是,关于这方面的信息并不像我预期的那么多。 我发现的是JSTL 名称空间。特别是与一起使用。但是

  • 目录 4.1 编写适应国际化的应用程序 4.2 使用 POSIX.1 本地语言支持 (NLS) 的本地化消息 4.1 编写适应国际化的应用程序 为了使你的程序对于使用其他语言的用户更加有用, 我们希望你的程序应该国际化。 GNU的gcc编译器和GUI库比如QT或者GTK等通过对字符串的特殊处理来支持国际化。 生成一个支持国际化的程序非常容易。 它使得发布者很快的把你的程序移植成其他语言。 请参看详

  • 本文向大家介绍PHP中使用gettext解决国际化问题的例子(i18n),包括了PHP中使用gettext解决国际化问题的例子(i18n)的使用技巧和注意事项,需要的朋友参考一下 实现国际化的方式比较多,很多php framework都内置i18n支持,但大部分是基于PHP的数组实现的,这种方法并不推荐。目前最为流行也最通用的方法是gettext。 Gettext 用于系统的国际化(I18N)和本

  • 本文向大家介绍vue使用i18n实现国际化的方法详解,包括了vue使用i18n实现国际化的方法详解的使用技巧和注意事项,需要的朋友参考一下 一、前言 在4k广告机中需要实现多语言切换,这时候接触到国际化,前端框架无数,其中几种热门的框架都有相匹配的国际化插件工具。比如: vue + vue-i18n angular + angular-translate react + react-intl jq

  • 问题内容: 我敢肯定有很多方法,但是什么是对您的代码影响最小的推荐方法呢? 显而易见的是,您创建了属性文件,但是如何在渲染中交换值?在J2EE中,您总是只需要重新渲染整个页面即可,这很容易。但是在Swing应用程序中,您是否只是在paintComponent(Graphics g)方法中添加了.getProperty()的代码? 如果是这样,那么看起来似乎并不繁琐,因为现在您必须在不需要的地方到处