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

在php项目中使用gettext-仅翻译一种语言

韩鸿波
2023-03-14

我正在尝试将一个网页翻译成几种语言。然而,我只能让gettext为西班牙语工作。

我正在使用以下代码:

$lang = "de_DE";
if (isset($_GET['lang'])) $lang = $_GET['lang'];
putenv("LC_ALL=$lang");
setlocale(LC_ALL, $lang);
bindtextdomain("messages", "locale");
bind_textdomain_codeset('messages', 'UTF-8');
textdomain("messages");

如果我设置$lang=“es_es”,字符串将被翻译成西班牙语,但是如果我设置$lang=“de_de”,翻译将不起作用,我只看到默认的英语版本。

我想这可能是关于我的电脑区域设置的事情(我在西班牙语中使用视窗)。我正在Windows上工作(使用Wamplocalhost),我不知道是否需要安装更多的东西,如果需要,如何安装。

如果我必须这样做,它会在我的在线主机上工作而不在那里安装任何东西吗?

谢谢!:)

共有1个答案

秦凯旋
2023-03-14

setlocale()在Windows中存在PHP官方文档中提到的问题:

区域设置信息是按进程维护的,而不是按线程维护的。如果在多线程服务器API(如Windows上的IIS或Apache)上运行PHP,则在脚本运行时,可能会遇到语言环境设置的突然变化,尽管脚本本身从未调用setlocale()。这是由于同时在同一进程的不同线程中运行的其他脚本使用setlocale()更改了进程范围的区域设置。

Windows用户将在Microsoft的MSDN网站上找到有关区域设置字符串的有用信息。支持的语言字符串可在»语言字符串文档中找到,支持的国家/地区字符串可在»国家/地区字符串文档中找到。

您需要意识到的主要是,许多PHP函数是*ix操作系统程序API上的包装器。所以它们在linux和其他兼容的操作系统中工作得很好——在视窗系统中就不那么好了。

 类似资料:
  • 我试图使用gettext翻译我的PHP项目,但它不起作用。PHP输出gettext字符串名称,而不是实际的翻译。. po文件在POEditor中编译。 设置区域设置: PO文件:(在locale/en/LC_MESSAGES/filename.PO中) 在PHP中回声: 是的,我尝试了从stackoverflow到Google的一切,用了3个多小时。我已经在PHP中安装了gettext,还尝试重新

  • 因此,问题如下。我正在将一个站点从每种语言的内容数组转换为一个gettext站点,在原始语言的基础上增加两种语言。 所以我的基础语言是es_MX,我有en_US和fr_FR的翻译。 我在中使用以下参数。htaccess可传递有关区域设置的信息: 所以,当我检查$_GET参数时,一切都被正确接收。 案例1:默认es_MX 案例2:en_US 案例三:fr_FR 因此,在这之后,为了在社交网络插件或属

  • 我有英文的php gettext默认语言 我想在我的一个控制器,翻译一些词在2个其他语言,并把他们全部在一个数组。 理想情况下我可以 但它并不存在。 是每次更改gettext设置的唯一方法吗? 相关:在Google:i18n之后用gettext看到了它,但没有地方设置的麻烦? 以下是建议的已回答的解决方案: https://github.com/philip15b/php-i18n(似乎是最佳解决

  • 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。 生成失败 还定义了$home目录中的文件.bash_profile: 尝试:使用--info或--debug选项运行以获取更多日志输出。 生成失败得总时间:17.897秒

  • 本文向大家介绍使用Python3中的gettext模块翻译Python源码以支持多语言,包括了使用Python3中的gettext模块翻译Python源码以支持多语言的使用技巧和注意事项,需要的朋友参考一下 你写了一个Python 3程序,还想要它适用于其他语言。你能复制全部代码库,然后刻意地检查每个.py文件,替换掉所有找到的文本字符串。但这意味着你有两份你代码的独立副本,每当你要做出个改动或修

  • 我正在考虑从自然gettext msgstr切换到固定的。例如从 到 这是因为当站点上的语言数量不断增加时,文本字符串更新变得越来越麻烦,并且每次连续部署版本的所有翻译都不实用。然而,改用伪造的MSGID将使网站模板和源代码(英语是主要语言)的工作变得繁琐。 金字塔框架和变色龙模板通过允许gettext翻译的默认值,为这个问题提供了一个简洁的解决方案。例如,如果没有可用的和数据(英文)。采购订单文