I'm trying to add en_SG
translations to an R package, but I'm met with a gettext error and I haven't seen any source on what's the issue:
list.files('po')
# [1] "R-myPkg.pot"
# [2] "R-en_SG.po"
tools::update_pkg_po('.')
has output:
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.
What exactly am I missing?
PO files should have a "header" which is really an entry with a translation for the empty string. It looks like this:
# 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"
This header contains meta information for the catalog, for example the encoding of the PO file in the Content-Type
header field. You are missing this header field.
I don't know how you generate the file po/R-en_SG.po
but you have to ensure that it contains at least a minimal PO header. In doubt, you have to add it manually.
Just a note really. If using Poedit then saving the.po file will create the header and then you can compile without error
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.