问题标签 [po-file]

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 投票
4 回答
4739 浏览

php - php 源代码到 PO 文件生成器

我必须将我的所有回显/打印字符串从我的php 源代码文件转换为PO 文件(用于语言翻译),是否有任何可用的批处理对流器。

0 投票
4 回答
4599 浏览

git - 版本控制下的 Gettext .po 文件

目前在项目上使用 Gettext 并且 .po 文件很好地保存在版本控制之下。

PO 文件当然包含翻译,但除此之外,它们还包含一些元数据 - 有关可翻译字符串所在的确切文件和行号的信息。

问题是每次更新 PO 文件时,元数据的变化都比实际翻译要大得多。这使得以后很难从版本控制差异中查看实际更改的内容 - 您只会看到对文件名和行号的无数更改。像那样:

当然,一个简单的解决方法是在 xgettext 输出中禁用文件名/行号注释的生成。但我实际上发现这些文件名在翻译时是非常有用的提示。

我肯定不会是唯一一个不喜欢他的 PO 文件差异的人。建议?

0 投票
1 回答
445 浏览

php - PO 文件中的引用 - 使用 cakephp:它们对翻译有影响吗?

目前我正在使用 cakephp 解决方案(不幸的是封闭源代码)并且注意到有时即使它在 po 文件中有 msgid 条目也不会翻译字符串。我意识到如果源引用不在条目中,就会发生这种情况。如果我输入对该字符串的源引用,或者从条目中删除所有源引用,它将被翻译。

为了测试这一点,我制作了一个带有可翻译字符串的小 cakephp 应用程序(使用 __() 函数),但我无法获得相同的行为。

例如:

App1:如果我删除 view1 引用,则 view1 的该语言环境不会发生任何翻译,但 view2 可以翻译。如果我删除所有引用都有效。

App2(我的测试):引用没有影响,全部翻译

怎么可能?我在第一个应用程序中使用主题,字符串因主题而异。这会导致这种行为吗?

其他问题:如果我在视图中创建任何新字符串,在 po 文件中插入新字符串的最佳做法是什么?我可以提取一个新的空锅,没关系,但总是搜索 po 文件并手动插入这些文件非常耗时。我找不到更好的自动方式。GNU/gettext 手册太复杂了,我无法理解这个过程:(

0 投票
1 回答
1590 浏览

python - 如何在可翻译的字符串中有不间断的空格

我们有一个 Pyramid 应用程序,我们必须有英语、西班牙语和法语版本。我们已经完成了 i18n 的第一遍,但是我们对如何在我们的翻译字符串中引入不间断空格感到困扰。

例如,我们有以下内容:

翻译成法语时,必须将其更改为:

但是 « 之后的空格和 » 之前的空格和 ! 必须是不间断的。

编辑 PO 文件时,如何将不间断空格放在应有的位置?我使用 Emacs PO 模式,但我还没有找到方法来做到这一点。

0 投票
1 回答
392 浏览

php - ZF2 2.2.4 翻译问题

我有一个问题,因为我在我的网站上从 ZF 2.2.0 传递到 ZF 2.2.4,更改语言不起作用。

这是我的自动加载/translator.global.php

不改源代码,直接切换到 2.2.0 就可以了,2.2.4 不行。

);

0 投票
1 回答
256 浏览

localization - 不为 Orchard CMS 中的模块应用 .po 文件

我安装 Orchard CMS 1.10 并从https://crowdin.com/project/orchard-cms获取俄语翻译并解压缩到 Orchard.Web。当我添加并启用 ru-Ru 本地化时,所有这些都适用于剃须刀视图。但是对于模块不是。例如,我尝试更改 Orchard.DynamicForms 中必填字段的验证消息,但显示验证消息时没有任何反应,它们仍然是英文的。也翻译不适用于管理面板中的模块列表。

0 投票
2 回答
169 浏览

python - 使用 python 替换 PO 文件数据中的 msgstr 的正则表达式

我有清单content = ['x', 'y', 'z']

.po 文件内容:

我需要如下输出:

编辑:

所以filedata有PO文件的所有内容

0 投票
0 回答
85 浏览

odoo - 当我重新加载 po 文件时,如何保留通过 Odoo 界面(由最终用户)添加或修改的翻译?

当您导出特定模块的翻译模板时,您会导出模块中的所有项目:python 中的文字字符串、标签以及您在data文件夹中手动引入的所有信息:

  1. 想象一下,您已经为您的客户安装了模块并且缺少一些翻译。尤其是data文件夹中添加的记录中的那些。然后,用户通过 Odoo 界面翻译其中的一些,ir_translation用这些术语更新表格。

  2. 然后,您想在 po 文件中将更多字段及其翻译添加到模块中,或者修改一些已经完成的翻译。

  3. 如果您想加载您在 po 文件中编写的术语,您必须覆盖 po 文件中所有字段的翻译(标记复选框)。但问题是这些字段中会有一些字段是用户翻译的。

    加载翻译文件

有没有办法保留用户修改或更改的翻译?

我还考虑到:

  • 再次导出模块的语言不会通过界面带来新的翻译记录
  • 我可以从 po 文件中导出数据ir.translation并将其写入 po 文件,但是每次我想更改 po 文件时都这样做很麻烦
  • 我可以将 po 文件发送给客户端,即使这不是很方便
  • 我可以在没有任何 po 文件的新模块中尽可能多地隔离记录

可能的最佳解决方案

  • 只需勾选“保留用户修改的翻译记录”即可。更新的记录可以通过检查最后一次写入日期来识别ir_translation。或者我什至可以添加一个新字段ir_translation来指示用户更新了它们。恐怕这是在Odoo的翻译引擎中,我不知道它是否安全或容易触摸。