R PO文件头丢失或无效

R PO文件头丢失或无效,r,gettext,po,msgfmt,R,Gettext,Po,Msgfmt,我试图将en_SG翻译添加到R包中,但遇到了一个gettext错误,我没有看到任何关于问题的来源: list.files('po') # [1] "R-myPkg.pot" # [2] "R-en_SG.po" tools::update_pkg_po('.') 其输出: R-en_SG:. done. msgfmt: po/R-en_SG.po: warning: PO file header missing or invalid warni

我试图将
en_SG
翻译添加到R包中,但遇到了一个gettext错误,我没有看到任何关于问题的来源:

list.files('po')
# [1] "R-myPkg.pot"
# [2] "R-en_SG.po"
tools::update_pkg_po('.')
其输出:

  R-en_SG:. done.
msgfmt: po/R-en_SG.po: warning: PO file header missing or invalid
                       warning: charset conversion will not work
msgfmt: found 1 fatal error
Warning in tools::update_pkg_po(".") :
  running msgfmt on R-en_SG.po failed
  R-en@quot:
2 translated messages.
我到底遗漏了什么?

PO文件应该有一个“标题”,它实际上是一个带有空字符串翻译的条目。看起来是这样的:

# German translations for qgoda package.
# Copyright (C) 2018 Guido Flohr <http://www.guido-flohr.net>
# This file is distributed under the same license as the qgoda package.
# Guido Flohr <guido.flohr@dontspam.me>, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: qgoda 0.1.1\n"
"Report-Msgid-Bugs-To: Guido Flohr <guido.flohr@dontspam.me>\n"
"POT-Creation-Date: 2018-05-16 20:36+0300\n"
"PO-Revision-Date: 2018-05-16 20:37+0300\n"
"Last-Translator: Guido Flohr <guido.flohr@donstspam.me>\n"
"Language-Team: German\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
qgoda软件包的德语翻译。 #版权所有(C)2018 Guido Flohr #此文件与qgoda软件包在同一许可证下分发。 #圭多·弗洛尔,2018年。 # msgid“” msgstr“” “项目Id版本:qgoda 0.1.1\n” “将Msgid错误报告给:Guido Flohr\n” “罐创建日期:2018-05-16 20:36+0300\n” “采购订单修订日期:2018-05-16 20:37+0300\n” “最后一个转换器:Guido Flohr\n” “语言小组:德语\n” “语言:de\n” “MIME版本:1.0\n” “内容类型:文本/普通;字符集=UTF-8\n” “内容传输编码:8位\n” “复数形式:nplurals=2;复数=(n!=1);\n” 此标题包含目录的元信息,例如
内容类型
标题字段中PO文件的编码。您缺少此标题字段


我不知道如何生成文件
po/R-en_SG.po
,但必须确保它至少包含一个最小的po头。如果有疑问,您必须手动添加它。

当然!出于某种原因,我期待着一个工具,我用它来为我做这件事。谢谢你的提醒