【问题标题】:How to add a new string to a *.po file w/ a PO editor如何使用 PO 编辑器将新字符串添加到 *.po 文件
【发布时间】:2011-10-06 20:23:00
【问题描述】:

我手动创建了一个文件:test.po,内容如下:

msgstr "问候"
msgstr "Hello World"

现在我可以在“poedit”和“GTranslated”(我使用的是 Ubuntu)等编辑器中编辑翻译(hello world)。我什至可以将 cmets 添加到该翻译中。然而,“poedit”和“GTranslated”都不会让我添加一个新的翻译字符串 - 我在网上看了无济于事,并查看了其他编辑器的屏幕截图,似乎没有一个“新”按钮。

我错过了什么???必须使用“纯”文本编辑器编辑新键,然后在这些 PO 编辑器中编辑它们(无论它们可能是什么),这似乎很愚蠢。 (如果你不知道我是这个“gettext”世界的新手——我正在用 Zend/PHP 建立一个网站。)

【问题讨论】:

    标签: translation gettext poedit


    【解决方案1】:

    您不应该直接将字符串添加到 .po 文件中;他们将是added by msgmerge from the .pot file generated by xgettext

    【讨论】:

    • 我有一个场景,我只需要在 PO 文件中添加两个单词,因为打开和重新生成 PO 文件似乎有点长,你不觉得吗?
    • @iamtheladylegend:手工编辑是不可自动化的。
    • 我有一个案例,我正在为带有 ex 之间链接的字符串添加带有 %s 的单词。 链接名称和货币数据与 %d ex。 $123.00 而在单个单词中包含多个链接的字符串时,输入例如 %1$s 和 %2$s for ex。你好Link1。现在欢迎您Link2。现在,上面的 %1$s 和 %2$s 之类的词不包含在 PO 文件中,知道为什么吗?
    • 如果我的字符串的来源在数据库中怎么办。如何在 po 文件中获取要发送的消息? Compilemssage 似乎忽略了之前没有被 makemessage 抓取的所有内容
    【解决方案2】:

    这就是我所做的:

    编辑 .po 文件并添加新字符串,例如:

    msgid "All Catalogues"
    msgstr "Todos los catalogos"
    

    保存 .po 文件。

    现在在 poedit 中打开它,然后在菜单中选择:目录 > 从 POT 文件更新

    更新后,您应该会看到新字符串并且可以更改它。

    保存更改,一切顺利。

    【讨论】:

    • 我的用例可能会略有不同,因为我 am 使用的是 POT 文件。无论如何,您的回答仍然对我有所帮助。要手动添加新翻译,我将您指定的代码添加到 POT 文件,然后在 poedit 中打开我的 .po 翻译并按照您的建议选择目录 > 从 POT 更新。完美运行。
    • 太棒了,很高兴听到@rinogo
    【解决方案3】:

    MacOS:

    1. 在任何文本编辑器中编辑 .po 文件。
    2. 在 Poedit 中打开 .po 文件(免费)
    3. 在 Poedit 中,选择文件 -> 编译为 .MO

    这在 Wordpress Genesis .po 文件中对我有用。

    【讨论】:

    • 所以 poedit 所做的只是编译 .mo 文件?您无法在 poedit 中添加条目似乎有点奇怪。我认为这是 OP 困惑的根源——这就是我来这里的原因。
    • @ChrisPink 这就是 gettext 翻译系统的工作原理。您不需要手动添加字符串,因为它们来自源代码 - 如果代码中没有某些内容,则翻译它是没有意义的,翻译永远不会使用。因此,您无需手动执行所有这些操作,而是自动从代码中提取所有要翻译的文本。
    • @Václav Slavík 您如何在 Wordpress 环境中执行此操作(使用 Polylang)?
    【解决方案4】:

    使用任何文本编辑器打开 .po 文件,添加这些行或任何需要添加的文本。

    msgid "All Catalogues"
    msgstr "Todos los catalogos"
    

    保存并启动:-D

    【讨论】:

      【解决方案5】:

      旧线程,但我发现自己想要翻译存储在 WordPress 数据库中且无法使用 Polylang 翻译的字符串。

      我所做的是在主题中创建一个 PHP 文件,并添加了带有 __("A string to translate"); 的字符串 PoEdit 自动将其添加到 .po 文件中。

      【讨论】:

        猜你喜欢
        • 2012-10-13
        • 2012-03-29
        • 2021-03-09
        • 1970-01-01
        • 1970-01-01
        • 2016-02-26
        • 1970-01-01
        • 1970-01-01
        • 2018-01-23
        相关资源
        最近更新 更多