使用 xgettext 和 msginit 生成 .po 文件时出现 msgfmt 错误
msgfmt error when generating .po file with xgettext and msginit
使用以下命令生成.po文件时:
xgettext test.js -o test.pot -L JavaScript --from-code=UTF-8
msginit -i test.pot -o de.po --locale=de
我得到以下 header:
# Copyright (C) 2021 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# test <test@test.com>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-16 11:39+0300\n"
"PO-Revision-Date: 2021-04-16 11:40+0300\n"
"Last-Translator: test <test@test.com>\n"
"Language-Team: German\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
检查此文件时
msgfmt -cv /dev/null de.po
我收到以下错误
msgfmt: /dev/null: warning: PO file header missing or invalid
warning: charset conversion will not work
msgfmt: found 1 fatal error
我将文件 de.po
中的 charset=ASCII
更改为 charset=UTF-8
,但出现相同的错误。我正在使用 Ubuntu 服务器 20.04 和 gettext-tools 版本 0.19.8.1
如果您调用 msgfmt -cv /dev/null de.po
,那么 /dev/null
是第一个输入文件,这不是您想要的。但难怪 /dev/null
不包含有效的 PO header.
您可能想要的是:msgfmt -cvo /dev/null de.po
。
-o
表示 /dev/null
是输出文件。
使用以下命令生成.po文件时:
xgettext test.js -o test.pot -L JavaScript --from-code=UTF-8
msginit -i test.pot -o de.po --locale=de
我得到以下 header:
# Copyright (C) 2021 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# test <test@test.com>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-16 11:39+0300\n"
"PO-Revision-Date: 2021-04-16 11:40+0300\n"
"Last-Translator: test <test@test.com>\n"
"Language-Team: German\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
检查此文件时
msgfmt -cv /dev/null de.po
我收到以下错误
msgfmt: /dev/null: warning: PO file header missing or invalid
warning: charset conversion will not work
msgfmt: found 1 fatal error
我将文件 de.po
中的 charset=ASCII
更改为 charset=UTF-8
,但出现相同的错误。我正在使用 Ubuntu 服务器 20.04 和 gettext-tools 版本 0.19.8.1
如果您调用 msgfmt -cv /dev/null de.po
,那么 /dev/null
是第一个输入文件,这不是您想要的。但难怪 /dev/null
不包含有效的 PO header.
您可能想要的是:msgfmt -cvo /dev/null de.po
。
-o
表示 /dev/null
是输出文件。