问题标签 [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 回答
968 浏览

localization - PO 文件字符串的最大大小

我知道 PO / MO 文件旨在用于按钮名称、标签等小字符串。不像关于页面等长文本。

但是最近我遇到了很多中间的情况。例如,两句话号召性用语。或者一小段。

当字符串太长而无法放入 PO 文件时,是否有最佳实践或“经验法则”?

更新

对于“长”文本,我使用部分并包含正确的语言版本。我的问题是何时使用一个与另一个最佳。我听说 PO 文件对于“长”文本是“低效的”。但这意味着什么,什么时候太“长”了?或者这不是一个问题?

0 投票
1 回答
911 浏览

php - PHP 中的 Gettext 需要调用 setlocale(LC_MESSAGES, NULL)

在 Ubuntu 上使用 PHP 5.5.9 时,gettext 无法正常工作,尽管一切都已正确设置。

我用来设置 gettext 的行如下:

这应该包含所需的一切。但是 gettext 总是返回默认语言环境的字符串(传入的字符串),而不是正确的翻译。

Callinglocale -a还列出了所有需要的语言,所以这也是正确设置的。

phpinfo()证明 gettext (以及扩展intl)已正确安装:

当然,Ubuntu 已经重新启动。

最后,指定的目录还包含 gettext 所需的翻译文件。

简而言之,一切似乎都设置正确——但它不起作用。

但是,当我setlocale(LC_MESSAGES, NULL);在调用之前添加时setlocale(LC_MESSAGES, 'es_ES');, gettext 突然起作用了。

有人可以解释一下吗?虽然操作系统和 PHP 版本不再是最新版本,但我不知道有任何错误会阻止 gettext 在此堆栈上工作。

这个解决方案感觉像是一个肮脏的黑客,当然不是我觉得可以依赖的东西。

0 投票
2 回答
227 浏览

php - PHP 的 gettext 扩展可以在 Google Cloud Platform / Google App Engine 上使用吗?

我在我的项目中使用 php_gettext 扩展来使用“.mo”文件翻译字符串。我正在将项目转移到谷歌的云平台,但显然没有启用 php_gettext 扩展(见这里)。

有没有办法安装这个扩展?如果没有,PHP 的国际化有什么替代方案?

0 投票
1 回答
81 浏览

php - php-gettext 如何更好的使用

我使用的是 php-gettext 而不是原生的 php gettext 扩展。我想知道是否有更好的方法来翻译大量文本。例如,我有这段代码:

我有很多<?php print T_("...") ?>,它似乎并不有效。在我的messages.po中,我有这个:

而且我有很多页面,其中的信息比这多得多,事实证明,在每个页面中都这样做很累。如果我必须这样做,那将需要我几天的时间和我的理智。有没有更好的做法?

0 投票
1 回答
40 浏览

php - PHPs gettext 带有没有文本域的语言目录

我想使用 PHP 的 gettext() 来自动翻译我的应用程序。但对我来说,拥有locales/de_DE/LC_ALL/$app_name.mo. 我需要像 only一样的东西locales/de_DE.mo,就像 WordPress 那样。我怎样才能配置 gettext 来使用它呢?

0 投票
0 回答
492 浏览

php - 设置 gettext 以使用 wamp

在这里没有发现这种问题。好吧,我想将我的网站本地化为英语和塞尔维亚语。

它适用于英语,但我无法使其适用于塞尔维亚语。我的目录结构如下所示(在 WAMP 上工作):

使用 poedit 创建的所有 .mo 和 .po 文件。这是我在 sr_RS 文件夹中的 messages.po 文件:

问题是当我使用此代码选择塞尔维亚语时:

回显默认字符串,而不是翻译后的字符串。

需要帮助!:)

0 投票
1 回答
2114 浏览

utf-8 - Gettext 不翻译每个字符串

我正在使用带有 .mo 文件(使用 PoEdit)的 PHP Gettext 将法语(fr_FR.UTF-8)翻译成英语(en_US.UTF-8),它工作得很好,但并不是所有的字符串都被翻译了!我不是在谈论没有用 UTF-8 正确翻译的口音,只是没有翻译一些完整的字符串。

我已经从我的所有 PHP 文件中提取了要翻译的法语字符串 - _("stringtotranslate") - 感谢 shell 脚本:

已正确生成所有字符串的default.pot ,没有丢失任何字符串。从那个 .pot 文件中,我为英文版创建了一个 default.po 文件。那个 .po 是 UTF-8 格式,而我需要它们的 PHP 文件也是 UTF-8 格式(没有 BOM)。

缓存没有问题:我为每个修改('default_' + filemtime)命名不同的.mo文件。

我能注意到:

  • 翻译没有 utf-8 字符的短字符串。
  • 长字符串或包含 utf-8 字符(法语口音)的字符串不会被翻译……但我发现了一个没有口音的短字符串示例,也没有翻译……(没有找到其他示例)。

我已经根据我的服务器(Apache 1.3.37、PHP 4.4.4、--with-gettext)设置了语言环境。语言环境是动态的,取决于在网站上点击的标志,这里是英文版:

正如我所说,一些字符串正确翻译成英文,但不是每个字符串。

这是英文版网站:http: //librairiedescarres.com/2015/en/

这是 .po 文件的一部分:

我尝试了很多解决方案,但没有一个有效:

  • 尝试其他语言环境,例如:“en_US”、“en_US.utf8”、“en_US.utf-8”...
  • putenv('LANG=fra'), putenv('LC_ALL=fra')...
  • 使用 Notepad++ 对生成的 .mo 文件强制使用 UTF-8 编码。

有什么解决办法吗?Apache、PHP 或 Gettext... 是否存在问题?

0 投票
0 回答
176 浏览

php - 带有 gettext 的 Laravel 5.1 在控制台命令中给出了未定义的函数 _()

我在 Homestead 上使用 Laravel 5.1。我使用 Xinax/Gettext 包 ( https://github.com/xinax/laravel-gettext ) 翻译字符串。除了尝试运行包含可翻译字符串的控制台命令(例如_('Test string').

我得到的错误是:

关于如何让 gettext 功能在控制台环境中工作的任何想法?

0 投票
1 回答
72 浏览

php - PHP gettext 和条件语句

第一次用 gettext 和 PoEdit 翻译一个网站,我注意到条件语句生成的消息被忽略了。

例如,PoEdit 如何从这样的开关构造中获取消息?

0 投票
2 回答
1099 浏览

javascript - 在Poedit中提取javascript gettext?

我在 PHP 中使用了“GNU gettext”,它通过使用 poedit 做得很好我能够提取 PO 文件格式

但是当我在我的 HTML“脚本”标签中为我的 javascript 尝试同样的事情时,我没有更多地工作,我看不到任何 javascript 支持。

poedit 支持几乎所有语言,除了 javascript 或者我正在这样做 任何人都可以以错误的方式提供 javascript 的工作示例?!我使用 poedit 跟踪了近 20 种语言的所有示例,除 javascript 外,所有示例均有效

来自 GNU gettext 的所有工作示例

gettext-0.19.7.ta​​r.gz

http://ftp.gnu.org/gnu/gettext/

gettext-0.19.7\gettext-tools\examples

这是 php 示例,我需要为 javascript 做同样的事情