问题标签 [php-gettext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
967 浏览

php - 尝试使用没有国家代码的 gettext('es' 而不是 'es_ES')

我的 php 项目中有下一个文件:

两者都是用 PoEdit 编辑的同一个文件,只是目录->属性->语言不同(分别为 es 和 es_ES)

并将这段代码放入localization.php文件

此代码工作正常,并且“要翻译的字符串”正确显示。但是,如果我尝试使用通用的“es”代码:

...字符串未翻译。似乎与我的 ubuntu 中安装的语言环境有关(es_ES.utf8 存在但不存在 es.utf8)

我可以强制 gettext 使用 es.UTF-8 文件吗?

0 投票
0 回答
595 浏览

php - PHP`gettext`在Ubuntu中不起作用

我正在尝试使用 PHPget text为我的网站添加多语言支持。到目前为止不成功,我不知道为什么。

在我的i18n.php文件中,我有这个:

然后,在./locale/pt_PT.utf8/LC_MESSAGES/messages.po

然后我生成.mo文件:

似乎 php 要求在 linux 系统中安装语言环境,所以我检查了locale -a

i18n.php是我第一次包含在index.php文件中,但没有显示任何消息。知道我错过了什么吗?

0 投票
3 回答
544 浏览

php - Gettext间歇性工作

我已经成功地使用这些行在 twig 中启用了国际化和 {% trans %} 标记:

和树枝模板:

不幸的是,它随机工作。我的意思是,当我一直按 F5 时,比如说,每秒,或者在页面之间切换,有时它会切换到应有的翻译字符串(“Translation.Key”变成“要输出的本地化值”),有时它会退回到在 {% trans %} 标签(“Translation.Key”)下输出字符串。

同时,我的日志中看不到任何错误。我应该检查什么以了解问题的根源并使其始终如一地工作?

提前致谢。

0 投票
3 回答
1421 浏览

php - 如何国际化 PHP 第三方库

考虑编写一个 PHP 库,它将通过 Packagist 或 Pear 发布。它面向在任意设置中使用它的同行开发人员。

该库将包含为客户端确定的一些状态消息。如何国际化此代码,以便使用该库的开发人员有尽可能高的自由插入自己的本地化方法?我不想假设任何事情,尤其是不强迫开发人员使用 gettext。

举个例子,让我们学习这个类:

这里有两个问题:如何将私有标记$message为翻译,以及如何允许开发人员将字符串本地化callMeToo()

一个(非常不方便的)选项是,在构造函数中请求一些 i18n 方法,如下所示:

但我非常希望有一个更优雅的解决方案。

编辑 1:除了简单的字符串替换之外, i18n 的字段很宽。前提是,我不想在我的库中打包任何 i18n 解决方案,也不想强迫用户专门选择一个来满足我的代码需求。

那么,我如何构建我的代码以允许针对不同方面进行最佳和最灵活的本地化:字符串翻译、数字和货币格式、日期和时间……?假设其中一个或另一个显示为我的库的输出。消费开发者可以在哪个位置或界面插入她的本地化解决方案?

0 投票
1 回答
1046 浏览

php - PHP gettext 支持简体中文吗?

我试图在我的一个 PHP 项目中支持繁体中文,但我无法让它显示任何中文字符。这是我的gettext设置:

之前我通过键入以下内容在 SSH 中创建了语言环境:

然后返回:

键入后locale -a,我在列表中得到以下信息(除其他外):

但是,它仍然没有显示任何中文字符。我在这里做错了什么?

0 投票
2 回答
228 浏览

php - php gettext not translating at all on Network Solutions server

I am having a strange problem with gettext on a server I am forced to use to redesign a website. The customer is used to having Network Solutions as provider so currently it's not an option to change providers. Anyway the problem is the following:

  • I thought it might not have gettext installed so I checked phpinfo and it is enabled.

    gettext GetText Support enabled

  • I also checked using

    if (!function_exists("gettext")) { echo "gettext is not installed\n"; } else { echo "gettext is supported\n"; }

The output says gettext is supported

I then thought perhaps the server is having issues with the native gettext so I tried using this one https://launchpad.net/php-gettext/. I uploaded it to the server and it's not working either.

The configuration in my header is

The $locale and $domain server are assigned before the functions.

The same code with gettext worked fine on my local apache server.

What could be the issue? As the site is not really that big I am considering using a database storage for the translations although I am not really into the idea but I am out of ideas why this is happening.

I have my locale file correctly located in ./locale/language_code/LC_MESSAGES/file.po and file.mo when I echo the return of the bindtextdomain it shows the full path to the locale.

Any suggestions?

0 投票
0 回答
172 浏览

php - PHP 国际化与 intl

我正在寻找一种使 PHP 应用程序国际化的好方法。到目前为止,我的结论是我不会使用(我猜会gettext随机失败,缓存的实现不好)并且不是我的选择。lighttpdZend

我对PHP 5.3 中引入的PHP 国际化函数非常感兴趣。但我不太确定它是否是这项工作的工具。我没有找到任何关于使用这些人进行应用本地化的文章,但似乎BundleResource正是我想要的。

有人可以在这里确认这是要走的路以及如何组织/创建/填充/使用资源包吗?官方文档太肤浅(例如ResourceBundle::create)或者我在这里遗漏了一些东西。

否则,我将使用数组作为最后的手段。啊!

0 投票
2 回答
320 浏览

php - 我应该缓存gettext吗?

我使用 PHP 的 gettext 扩展已经有一段时间了,我对它的功能感到满意。例如,我想知道编写一个将字符串从.mo文件缓存到 Memcached 服务器的类是否有意义。

我可以从 gettext 收集的缓存字符串中受益还是应该保持原样?

0 投票
1 回答
224 浏览

php - gettext 随机停止工作

我在这里陷入了困境。浏览我的本地化网站的翻译版本时,翻译随机停止,我不知道为什么;我不确定这是否与我设置区域设置的方式有关,但它会随机停止翻译并恢复为英语。完成此操作后,唯一的取回方法是转到主页,在地址栏中突出显示 URL,然后按 Enter。

我希望有人可以看看我在 PHP 中设置语言环境的方式,看看是否有我遗漏或搞砸的东西。

如果你们中的任何人对为什么 gettext 随机停止工作有任何想法,请告诉我。另外,如果您需要查看其他地方的代码片段以解决该问题,请告诉我。对此,我真的非常感激!

0 投票
1 回答
356 浏览

php - Gettext 翻译成英文但不翻译成法文

所以问题如下。我正在将一个站点从每种语言的内容数组转换为一个 gettext 站点,除了原始语言还有 2 个。

所以我的基础语言是 es_MX,我有 en_US 和 fr_FR 翻译。

我在 .htaccess 中使用以下参数来传递语言环境的信息:

因此,当我检查 $_GET 参数时,一切都正确接收。

案例 1:默认 es_MX

案例 2:en_US

案例3:fr_FR

所以,在那之后我为了让几个语言变量用于社交网络插件或属性而做了什么,我有以下条件:

之后,我使用以下方法初始化语言环境:

我的语言环境位于: - 英语 (./locale/en_US/LC_MESSAGES/hacienda.mo) - 法语 (./locale/fr_FR/LC_MESSAGES/hacienda.mo)

我跑exec("locale -a",$output)了,网站显示了一堆语言环境,其中有几个 fr_FR 条目,包括 fr_FR.utf8。

生成的html是:

我尝试重命名语言环境文件也创建了一个新文件,但它似乎没有得到法语翻译。知道是什么原因造成的吗?