从一个不完整的gettext**.pot文件开始,生成的.po翻译文件现在包含大量最初不在.pot文件中的翻译字符串。如何从翻译后的.po文件反向生成其他语言的.pot**文件(带有空白翻译条目的字符串)?谢谢你的帮助。
unguejic1#
你可以使用这样的东西:
msgfilter -i xx.po -o new.pot true
字符串msgfilter将程序应用于文件中的所有翻译,而true只是某个不为任何输入输出任何内容的程序。在此之后,您可能需要稍微修改头注解,使其看起来像一个新的POT文件。
msgfilter
true
a11xaf1n2#
虽然@richhallstoke报告的命令适用于Linux和Mac
字符串在Windows上,这会失败,因为我们没有true命令。我刚刚发布了一个执行此操作的online tool(以及其他操作):只需在浏览器中拖放您的.po文件,点击“工具”图标并单击“转换为.pot”。PS:那个在线工具是FOSS:它的源代码是on GitHub。
fslejnso3#
这花了很长时间才找到一种方法,但最终我找到了一个解决方案,使用Notepad++。|Replace. * menu我可以用正则表达式 Replace All。查找:msgstr ".*"替换为:msgstr ""
msgstr ".*"
msgstr ""
smdnsysy4#
我认为,最干净的方法是使用Peter Schlentraut提出的解决方案:第一个月你也可以通过在最后一个true参数之前添加--keep-header来保留gettext头。在这种情况下,你需要检查结果头,因为它可能包含语言特定的指令(比如复数规则的数量)。对于Windows用户:为了使用这种方法,你需要一个像true一样的程序(也就是说,它除了成功运行之外什么也不做),就像我为此编写的true for Windows一样。
--keep-header
yuvru6vn5#
如果你想更新翻译字符串,你不需要.pot文件。从poedit:catalog,从.pot文件更新,然后在浏览器窗口中将.pot文件仅更改为“所有文件”,选择你的.po文件,它将处理
fhity93d6#
您不需要这样做。您从源代码. msgmerge生成.pot文件,然后获取新的.pot文件和现有的.po文件,并将旧条目合并到新文件中。
msgmerge
lpwwtiir7#
下面是一个Vim替换命令,它可以从一个完整的.po文件转换成一个.pot文件。:%s/msgid_.{-}msgstr \(\(“."_.\)\)/msgid \1msgstr“"\r/
kqqjbcuj8#
在当前的PoEdit 3.4.1 for Windows中没有msgfilter.exe,但您可以使用xgettext.exe(您可以在...\Poedit\GettextTools\bin中找到它)从 .po 文件开始生成 .pot 文件:
msgfilter.exe
xgettext.exe
xgettext.exe -i xx.po -o new.pot
字符串
8条答案
按热度按时间unguejic1#
你可以使用这样的东西:
字符串
msgfilter
将程序应用于文件中的所有翻译,而true
只是某个不为任何输入输出任何内容的程序。在此之后,您可能需要稍微修改头注解,使其看起来像一个新的POT文件。
a11xaf1n2#
虽然@richhallstoke报告的命令适用于Linux和Mac
字符串
在Windows上,这会失败,因为我们没有
true
命令。我刚刚发布了一个执行此操作的online tool(以及其他操作):只需在浏览器中拖放您的.po文件,点击“工具”图标并单击“转换为.pot”。
PS:那个在线工具是FOSS:它的源代码是on GitHub。
fslejnso3#
这花了很长时间才找到一种方法,但最终我找到了一个解决方案,使用Notepad++。|Replace. * menu我可以用正则表达式 Replace All。
查找:
msgstr ".*"
替换为:
msgstr ""
smdnsysy4#
我认为,最干净的方法是使用Peter Schlentraut提出的解决方案:
第一个月
你也可以通过在最后一个
true
参数之前添加--keep-header
来保留gettext头。在这种情况下,你需要检查结果头,因为它可能包含语言特定的指令(比如复数规则的数量)。对于Windows用户:为了使用这种方法,你需要一个像
true
一样的程序(也就是说,它除了成功运行之外什么也不做),就像我为此编写的true
for Windows一样。yuvru6vn5#
如果你想更新翻译字符串,你不需要.pot文件。从poedit:catalog,从.pot文件更新,然后在浏览器窗口中将.pot文件仅更改为“所有文件”,选择你的.po文件,它将处理
fhity93d6#
您不需要这样做。您从源代码.
msgmerge
生成.pot文件,然后获取新的.pot文件和现有的.po文件,并将旧条目合并到新文件中。lpwwtiir7#
下面是一个Vim替换命令,它可以从一个完整的.po文件转换成一个.pot文件。
:%s/msgid_.{-}msgstr \(\(“."_.\)\)/msgid \1msgstr“"\r/
kqqjbcuj8#
在当前的PoEdit 3.4.1 for Windows中没有
msgfilter.exe
,但您可以使用xgettext.exe
(您可以在...\Poedit\GettextTools\bin中找到它)从 .po 文件开始生成 .pot 文件:字符串