问题标签 [poedit]

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 投票
3 回答
3504 浏览

php - 如何使 PoEdit 正确解析自定义“ngettext”实现?

我编写了一个 gettext 包装器,它使 l10n 的整个过程更简单一些,但不知何故,我无法让 PoEdit 正确识别和解析对该函数的复数版本调用。这是我最初拥有的:

但这根本行不通,PoEdit 什么也没选。我也试过:

这次 PoEdit 捕获了 的%d house但不是复数形式%d houses,但是如果我尝试完全相同但ngettext()调用它完美地工作,单数和复数形式都可以识别:

我已经正确(?)将_e关键字添加到项目设置中,但它没有选择复数变体。我还注意到 PoEdit 只有_,gettext并且gettext_noop作为要接听的默认按键,没有任何对ngettext,dngettextdcngettext函数的引用,但它仍然可以正确接听ngettext电话......这让我想知道 PoEdit 是否已经硬编码ngettext关键字 - 那真的很伤心。

无论如何,有没有办法让 PoEdit(或任何其他类似的应用程序)正确解析自定义函数?

0 投票
1 回答
100 浏览

php - 你知道如何解析包含在关键字中的字符串吗?

我正在尝试使用 Poedit 解析应用程序。我的大部分翻译都使用 translate() 方法,但在某些视图文件 (.phtml) 中,我使用特殊关键字,例如 My string

你知道我可以指定 poedit 吗?

谢谢

编辑:

我知道如何添加关键字,如 translate、setLabel 等……但它们都是方法。我需要添加类似 %s 的内容,poedit 会知道要翻译的字符串是 %s ,它包裹在标签元素周围

0 投票
1 回答
2544 浏览

php - 如何让 poedit 工作?

我已按照http://www.bunchacode.com/programming/internationalization-and-localization-in-cakephp/中的说明进行操作

但我不断收到此错误 xgettext: language `php' unknown

我疯狂地用谷歌搜索。我找不到它了。

0 投票
2 回答
4279 浏览

php - 将 Poedit 与 XAMPP 一起使用

我现在正在努力使用 PHP 的 gettext() 函数进入翻译文件并使用 Poedit 创建文件。Poedit 也没有附带帮助文件,我尝试了很多在网上找到的东西,但没有任何效果。我在 Mac OSX 上使用 XAMPP 配置。

在 OSX 上,我的 XAMPP 目录是

在这个目录中,我创建了 gettext.php

和以下文件夹:

当我这样做时使用 Poedit > 文件 > 新目录

语言:意大利
国家:意大利
字符集:UTF-8
源代码字符集:UTF-8
基本路径:/Applications/XAMPP/xamppfiles/htdocs/

比我将 default.po 保存到 /locale/it_IT/LC_MESSAGES/

“更新目录失败,点击“更多>>”了解详情

0 投票
1 回答
2825 浏览

zend-framework - Zend 框架、gettext、poedit 和编写关键字符串的人类语言

我正在使用 ZendFramework 编写一个网站,并决定使用 gettext 系统将其内容国际化。在我看来,我用法语写字符串,并提供一个此时只有一个文件“en.mo”来将句子翻译成英语。我想避免维护一个文件“fr.mo”,它只会将一个句子翻译成完全相同的句子。

有没有办法告诉 Zend 或 gettext 当语言环境是“fr”或“fr_FR”时,不需要搜索翻译文件并且必须按原样返回键字符串?或者也许有理由创建“身份翻译”文件 fr.mo ?

此时我的代码的关键引用:

我的引导程序的摘录:

/languages/ 的内容:

谢谢

0 投票
1 回答
997 浏览

php - Zend translate() 函数问题

我正在将 Zend Framework 用于多语言站点。翻译是用 Zend_Translate_Adapter_Gettext 完成的。我正在使用 poedit 准备 .mo 文件。

问题是当我设置两个 msgid 并且一个 msgstr 与另一个 msgid 相同时:

当我使用此代码时:

输出是这样的:

我认为如果 msgstr 与不同的 msgid 重合,则将其用作 msgid 并因此再次翻译。如果我的推理有误,请纠正我。

现在,我想知道您是否遇到过类似的问题以及如何轻松绕过它。

我当前的解决方案包括更改 msgid:

进而:

这不是一个令人满意的解决方案,因为我正在使用大约 10k 个文件的社区门户网站,我无法真正检查所有这些文件是否存在冲突。

如果它有任何用处:

  • Zend 框架版本:1.10.8
  • poedit版本:1.4.6
  • 站点在 Apache 2.2.11 和 PHP 5.3 上运行

[编辑]

感谢 Gordon,我可以包含另一条数据:一个涉及 PHP 的测试gettext。我使用了相同的测试 .mo 文件,包括 "foo"->"bar" 和 "bar"->"baz" 键值对。PHP 代码是这样的:

结果:

所以这绝对不是gettext他的错。

0 投票
2 回答
1520 浏览

cakephp - 默认 cakephp 库翻译的 .po 文件

如何将 cakephp 库文件的翻译添加到 default.po 文件
中,例如
- 月份名称
- 日期名称
- timeAgoInWords

我尝试手动将字符串添加到default.po,
但每次我从default.pot(使用poedit)更新它时
,字符串都消失了。

请帮我解决它
可以通过使用单独的.po文件找到解决方案

0 投票
3 回答
3395 浏览

php - 用原始语言切换 gettext 翻译语言

我用德语的所有文本启动我的 PHP 应用程序,然后使用 gettext 提取所有字符串并将它们翻译成英语。
所以,现在我有一个 .po 文件,其中包含德语的所有 msgid 和英语的msgstrs。我想切换它们,以便我的源代码包含英语作为msgids,主要原因有两个:

  1. 更多的翻译人员会懂英语,因此只适合为他们提供带有英语msgids的文件。我总是可以在发出文件之前和收到文件之后切换文件,但是不。
  2. 如果内容文本也是英文,它将帮助我编写英文的对象和函数名称和注释。我想这样做,所以该项目对其他开源合作者更开放(更可能懂英语而不是德语)。

我可以手动执行此操作,这是我预计为它编写自动化例程(因为我对shell 脚本非常糟糕)而不是手动执行的任务。但我也预计会像往常一样鄙视每一分钟的手工计算机劳动(感觉像是矛盾的说法,对吗?)。

以前有人做过吗?我认为这将是一个常见问题,但找不到任何东西。非常感谢。

示例问题:


我想我会缩小问题的范围。.po 文件中的开关当然没有问题,它很简单

对我来说,问题是在解析 .po 文件时搜索我的项目文件夹文件_('$msgid')并进行替换的例程_('msgstr')(这可能甚至不是最优雅的方式,毕竟 .po 文件包含包含所有文件路径的注释,其中msgid 出现)。


在与akirk的回答混为一谈之后,我又遇到了一些问题。

  1. 因为我有_('xxx')_("xxx")电话的混合,我必须小心(不)转义。
    • msgids 和 msgstrs 中的双引号 " 必须不转义,但是斜线不能去掉,因为可能是双引号在 PHP 中也被转义了
    • 单引号在替换为 PHP 时必须进行转义,但随后也必须在 .po 文件中进行更改。对我来说幸运的是,单引号仅出现在英文文本中。
  2. msgids 和 msgstrs 可以有多行,那么它们看起来像这样
    msgid = ""
    "line 1\n"
    "line 2\n"
    msgstr = ""
    "line 1\n"
    "line 2\n"
  3. 目前当然会跳过复数形式,但在我的情况下,这不是问题
  4. poedit 想要删除似乎已成功切换的过时字符串,我不知道为什么在(许多)情况下会发生这种情况。

今晚我将不得不停止工作。尽管如此,使用解析器而不是 RegExps 似乎并不过分。

0 投票
1 回答
787 浏览

localization - 在 PoEdit 中刷新 POT

我创建了一个 POT 来翻译我的网站并生成了一个 MO 文件。

我创建了一个新项目并从 POT 文件中导入,在翻译过程中我注意到我原来的 POT 上有一些错误。

我进行了更正,现在我想“刷新” POT 文件,以更新我的翻译项目,而不会丢失我所做的所有翻译。

我怎样才能做到这一点?

0 投票
1 回答
1479 浏览

google-translate - 谷歌翻译 API 与 PoEdit?

最近,我找到了两种翻译网页的方法:

1) 谷歌翻译 API

2) Poedit或创建PO、MO文件

这两种方法的优点或缺点是什么?