Update to 0.19.1-2
This commit is contained in:
parent
81750ca123
commit
5a1ae756c6
@ -1,89 +0,0 @@
|
|||||||
From 953c7242b96f150c6f4b67d15603c79695e3f4f6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daiki Ueno <ueno@gnu.org>
|
|
||||||
Date: Mon, 2 Jun 2014 18:04:41 +0900
|
|
||||||
Subject: [PATCH] msgl-check: Treat missing header errors as warnings
|
|
||||||
|
|
||||||
Problem reported by Richard Hughes at
|
|
||||||
<https://lists.fedoraproject.org/pipermail/devel/2014-June/199539.html>.
|
|
||||||
After <https://savannah.gnu.org/bugs/?40262>, "msgfmt -c" reports
|
|
||||||
error on missing PO headers. However, it turned out to be too strict
|
|
||||||
for the projects using Launchpad Translations. Let's relax the check
|
|
||||||
for the moment and wait for one or two release cycles.
|
|
||||||
* gettext-tools/src/msgl-check.c (check_header_entry): Report missing
|
|
||||||
required headers as warning, instead of error.
|
|
||||||
---
|
|
||||||
gettext-tools/src/msgl-check.c | 16 ++++++++++++++--
|
|
||||||
gettext-tools/tests/msgfmt-10 | 6 +++---
|
|
||||||
2 files changed, 17 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gettext-tools/src/msgl-check.c b/gettext-tools/src/msgl-check.c
|
|
||||||
index ee68ae4..64a68f6 100644
|
|
||||||
--- a/gettext-tools/src/msgl-check.c
|
|
||||||
+++ b/gettext-tools/src/msgl-check.c
|
|
||||||
@@ -777,8 +777,18 @@ check_header_entry (const message_ty *mp, const char *msgstr_string)
|
|
||||||
|
|
||||||
for (cnt = 0; cnt < nfields; ++cnt)
|
|
||||||
{
|
|
||||||
+ /* 0.19 change: It would better report error if a required
|
|
||||||
+ header field is missing. However, traditionally we didn't
|
|
||||||
+ treat it as error. Let's wait for one or two cycles until we
|
|
||||||
+ can assume the required header fields are always
|
|
||||||
+ available in practical PO files. */
|
|
||||||
+#if 0
|
|
||||||
int severity =
|
|
||||||
(cnt < nrequiredfields ? PO_SEVERITY_ERROR : PO_SEVERITY_WARNING);
|
|
||||||
+#else
|
|
||||||
+ int severity =
|
|
||||||
+ PO_SEVERITY_WARNING;
|
|
||||||
+#endif
|
|
||||||
const char *field = required_fields[cnt];
|
|
||||||
size_t len = strlen (field);
|
|
||||||
const char *line;
|
|
||||||
@@ -805,7 +815,8 @@ check_header_entry (const message_ty *mp, const char *msgstr_string)
|
|
||||||
field);
|
|
||||||
po_xerror (severity, mp, NULL, 0, 0, true, msg);
|
|
||||||
free (msg);
|
|
||||||
- seen_errors++;
|
|
||||||
+ if (severity == PO_SEVERITY_ERROR)
|
|
||||||
+ seen_errors++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
@@ -821,7 +832,8 @@ check_header_entry (const message_ty *mp, const char *msgstr_string)
|
|
||||||
field);
|
|
||||||
po_xerror (severity, mp, NULL, 0, 0, true, msg);
|
|
||||||
free (msg);
|
|
||||||
- seen_errors++;
|
|
||||||
+ if (severity == PO_SEVERITY_ERROR)
|
|
||||||
+ seen_errors++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return seen_errors;
|
|
||||||
diff --git a/gettext-tools/tests/msgfmt-10 b/gettext-tools/tests/msgfmt-10
|
|
||||||
index 03ee55b..d747cf8 100755
|
|
||||||
--- a/gettext-tools/tests/msgfmt-10
|
|
||||||
+++ b/gettext-tools/tests/msgfmt-10
|
|
||||||
@@ -48,7 +48,6 @@ msgstr ""
|
|
||||||
"Project-Id-Version: GNU bison\n"
|
|
||||||
"PO-Revision-Date: 2001-04-05 19:47+0200\n"
|
|
||||||
"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
|
|
||||||
-"Language-Team: test <test@li.org>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=ISO-8859-9\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
@@ -68,9 +67,10 @@ ${MSGFMT} --check -o /dev/null mf-test10.po2 \
|
|
||||||
2>&1 | grep -v '^==' | sed -e 's|[^ ]*\\msgfmt\.exe|msgfmt|' -e 's|^msgfmt\.exe|msgfmt|' | LC_ALL=C tr -d '\r' > mf-test10.err
|
|
||||||
|
|
||||||
cat << EOF > mf-test10.ok
|
|
||||||
+mf-test10.po2:6: warning: header field 'Language-Team' missing in header
|
|
||||||
mf-test10.po2:6: warning: header field 'Language' missing in header
|
|
||||||
-mf-test10.po2:20: number of format specifications in 'msgid_plural' and 'msgstr[1]' does not match
|
|
||||||
-msgfmt: found 2 fatal errors
|
|
||||||
+mf-test10.po2:19: number of format specifications in 'msgid_plural' and 'msgstr[1]' does not match
|
|
||||||
+msgfmt: found 1 fatal error
|
|
||||||
EOF
|
|
||||||
|
|
||||||
: ${DIFF=diff}
|
|
||||||
--
|
|
||||||
1.9.0
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
|||||||
Summary: GNU libraries and utilities for producing multi-lingual messages
|
Summary: GNU libraries and utilities for producing multi-lingual messages
|
||||||
Name: gettext
|
Name: gettext
|
||||||
Version: 0.19.1
|
Version: 0.19.1
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
License: GPLv3+ and LGPLv2+
|
License: GPLv3+ and LGPLv2+
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
URL: http://www.gnu.org/software/gettext/
|
URL: http://www.gnu.org/software/gettext/
|
||||||
@ -329,6 +329,10 @@ fi
|
|||||||
%{_emacs_sitelispdir}/%{name}/*.el
|
%{_emacs_sitelispdir}/%{name}/*.el
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jul 7 2014 Daiki Ueno <dueno@redhat.com> - 0.19.1-2
|
||||||
|
- apply patch to msghack.py, for Python 3 compatibility (Closes: #1113425,
|
||||||
|
thanks to Bohuslav "Slavek" Kabrda)
|
||||||
|
|
||||||
* Tue Jun 10 2014 Daiki Ueno <dueno@redhat.com> - 0.19.1-1
|
* Tue Jun 10 2014 Daiki Ueno <dueno@redhat.com> - 0.19.1-1
|
||||||
- update to 0.19.1 release
|
- update to 0.19.1 release
|
||||||
- switch to xz-compressed archive
|
- switch to xz-compressed archive
|
||||||
|
81
msghack.py
81
msghack.py
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python2
|
||||||
## -*- coding: utf-8 -*-
|
## -*- coding: utf-8 -*-
|
||||||
## Copyright (C) 2001, 2004, 2008, 2012 Red Hat, Inc.
|
## Copyright (C) 2001, 2004, 2008, 2012 Red Hat, Inc.
|
||||||
## Copyright (C) 2001 Trond Eivind Glomsrød <teg@redhat.com>
|
## Copyright (C) 2001 Trond Eivind Glomsrød <teg@redhat.com>
|
||||||
@ -20,7 +20,6 @@
|
|||||||
A msghack replacement
|
A msghack replacement
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import string
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
class GTMessage:
|
class GTMessage:
|
||||||
@ -35,8 +34,8 @@ class GTMessage:
|
|||||||
@message The message
|
@message The message
|
||||||
@id The messageid associated with the object
|
@id The messageid associated with the object
|
||||||
"""
|
"""
|
||||||
self._message=string.strip(message)
|
self._message=message.strip()
|
||||||
self._id=string.strip(id)
|
self._id=id.strip()
|
||||||
self._refs=[]
|
self._refs=[]
|
||||||
for ref in refs:
|
for ref in refs:
|
||||||
self._refs.append(ref)
|
self._refs.append(ref)
|
||||||
@ -178,7 +177,7 @@ class GTFile:
|
|||||||
msgar.append(GTMessage(message._id,message._message,message._refs))
|
msgar.append(GTMessage(message._id,message._message,message._refs))
|
||||||
continue
|
continue
|
||||||
msg=GTMessage(message._message,message._id,message._refs)
|
msg=GTMessage(message._message,message._id,message._refs)
|
||||||
if not msght.has_key(msg._id):
|
if msg._id not in msght:
|
||||||
msght[msg._id]=msg
|
msght[msg._id]=msg
|
||||||
msgar.append(msg)
|
msgar.append(msg)
|
||||||
else:
|
else:
|
||||||
@ -199,7 +198,7 @@ class GTFile:
|
|||||||
res=""
|
res=""
|
||||||
for message in self._messages:
|
for message in self._messages:
|
||||||
msgid=message._id
|
msgid=message._id
|
||||||
if msgids.has_key(msgid):
|
if msgid in msgids:
|
||||||
res=res+"Duplicate: %s\n" % (msgid)
|
res=res+"Duplicate: %s\n" % (msgid)
|
||||||
else:
|
else:
|
||||||
msgids[msgid]=1
|
msgids[msgid]=1
|
||||||
@ -259,12 +258,12 @@ class GTFile:
|
|||||||
inmsgstr=0
|
inmsgstr=0
|
||||||
templines=file.readlines()
|
templines=file.readlines()
|
||||||
for line in templines:
|
for line in templines:
|
||||||
lines.append(string.strip(line))
|
lines.append(line.strip())
|
||||||
for line in lines:
|
for line in lines:
|
||||||
pos=string.find(line,'"')
|
pos=line.find('"')
|
||||||
pos2=string.rfind(line,'"')
|
pos2=line.rfind('"')
|
||||||
if line and line[0]=="#":
|
if line and line[0]=="#":
|
||||||
refs.append(string.strip(line))
|
refs.append(line.strip())
|
||||||
if inmsgstr==0 and line[:6]=="msgstr":
|
if inmsgstr==0 and line[:6]=="msgstr":
|
||||||
msgstr=""
|
msgstr=""
|
||||||
inmsgstr=1
|
inmsgstr=1
|
||||||
@ -342,7 +341,7 @@ class GTMaster:
|
|||||||
|
|
||||||
def printUsage():
|
def printUsage():
|
||||||
"Print the usage messages"
|
"Print the usage messages"
|
||||||
print "Usage: ", str(sys.argv[0])," [OPTION] file.po [ref.po]\n\
|
print("Usage: ", str(sys.argv[0])," [OPTION] file.po [ref.po]\n\
|
||||||
This program can be used to alter .po files in ways no sane mind would think about.\n\
|
This program can be used to alter .po files in ways no sane mind would think about.\n\
|
||||||
-o result will be written to FILE\n\
|
-o result will be written to FILE\n\
|
||||||
--invert invert a po file by switching msgid and msgstr\n\
|
--invert invert a po file by switching msgid and msgstr\n\
|
||||||
@ -350,26 +349,26 @@ This program can be used to alter .po files in ways no sane mind would think abo
|
|||||||
--empty empty the contents of the .po file, creating a .pot\n\
|
--empty empty the contents of the .po file, creating a .pot\n\
|
||||||
--append append entries from ref.po that don't exist in file.po\n\
|
--append append entries from ref.po that don't exist in file.po\n\
|
||||||
\n\
|
\n\
|
||||||
Note: It is just a replacement of msghack for backward support.\n"
|
Note: It is just a replacement of msghack for backward support.\n")
|
||||||
|
|
||||||
|
|
||||||
if __name__=="__main__":
|
if __name__=="__main__":
|
||||||
output=None
|
output=None
|
||||||
res=None
|
res=None
|
||||||
if("-o") in sys.argv:
|
if("-o") in sys.argv:
|
||||||
if (len(sys.argv)<=sys.argv.index("-o")+1):
|
if (len(sys.argv)<=sys.argv.index("-o")+1):
|
||||||
print "file.po and ref.po are not specified!\n"
|
print("file.po and ref.po are not specified!\n")
|
||||||
printUsage()
|
printUsage()
|
||||||
exit(1)
|
exit(1)
|
||||||
output=sys.argv[sys.argv.index("-o")+1]
|
output=sys.argv[sys.argv.index("-o")+1]
|
||||||
sys.argv.remove("-o")
|
sys.argv.remove("-o")
|
||||||
sys.argv.remove(output)
|
sys.argv.remove(output)
|
||||||
if("--invert") in sys.argv:
|
if("--invert") in sys.argv:
|
||||||
if (len(sys.argv)<=sys.argv.index("--invert")+1):
|
if (len(sys.argv)<=sys.argv.index("--invert")+1):
|
||||||
print "file.po is not specified!\n"
|
print("file.po is not specified!\n")
|
||||||
printUsage()
|
printUsage()
|
||||||
exit(1)
|
exit(1)
|
||||||
file=sys.argv[sys.argv.index("--invert")+1]
|
file=sys.argv[sys.argv.index("--invert")+1]
|
||||||
gtf=GTFile(file)
|
gtf=GTFile(file)
|
||||||
res1=gtf.msgidDupes()
|
res1=gtf.msgidDupes()
|
||||||
if res1:
|
if res1:
|
||||||
@ -377,41 +376,41 @@ if __name__=="__main__":
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
res=str(gtf.invertedStrings())
|
res=str(gtf.invertedStrings())
|
||||||
elif("--empty") in sys.argv:
|
elif("--empty") in sys.argv:
|
||||||
if (len(sys.argv)<=sys.argv.index("--empty")+1):
|
if (len(sys.argv)<=sys.argv.index("--empty")+1):
|
||||||
print "file.po is not specified!\n"
|
print("file.po is not specified!\n")
|
||||||
printUsage()
|
printUsage()
|
||||||
exit(1)
|
exit(1)
|
||||||
file=sys.argv[sys.argv.index("--empty")+1]
|
file=sys.argv[sys.argv.index("--empty")+1]
|
||||||
gtf=GTFile(file)
|
gtf=GTFile(file)
|
||||||
res=str(gtf.emptyMsgStrings())
|
res=str(gtf.emptyMsgStrings())
|
||||||
elif("--master") in sys.argv:
|
elif("--master") in sys.argv:
|
||||||
if (len(sys.argv)<=sys.argv.index("--master")+1):
|
if (len(sys.argv)<=sys.argv.index("--master")+1):
|
||||||
print "file.po is not specified!\n"
|
print("file.po is not specified!\n")
|
||||||
printUsage()
|
printUsage()
|
||||||
exit(1)
|
exit(1)
|
||||||
loc=sys.argv.index("--master")+1
|
loc=sys.argv.index("--master")+1
|
||||||
gtfs=[]
|
gtfs=[]
|
||||||
for file in sys.argv[loc:]:
|
for file in sys.argv[loc:]:
|
||||||
gtfs.append(GTFile(file))
|
gtfs.append(GTFile(file))
|
||||||
master=GTMaster(gtfs)
|
master=GTMaster(gtfs)
|
||||||
res=str(master)
|
res=str(master)
|
||||||
elif("--append") in sys.argv:
|
elif("--append") in sys.argv:
|
||||||
if (len(sys.argv)<=sys.argv.index("--append")+2):
|
if (len(sys.argv)<=sys.argv.index("--append")+2):
|
||||||
print "file.po and/or ref.po are not specified!\n"
|
print("file.po and/or ref.po are not specified!\n")
|
||||||
printUsage()
|
printUsage()
|
||||||
exit(1)
|
exit(1)
|
||||||
file=sys.argv[sys.argv.index("--append")+1]
|
file=sys.argv[sys.argv.index("--append")+1]
|
||||||
file2=sys.argv[sys.argv.index("--append")+2]
|
file2=sys.argv[sys.argv.index("--append")+2]
|
||||||
gtf=GTFile(file)
|
gtf=GTFile(file)
|
||||||
gtf2=GTFile(file2)
|
gtf2=GTFile(file2)
|
||||||
gtf.append(gtf2)
|
gtf.append(gtf2)
|
||||||
res=str(gtf)
|
res=str(gtf)
|
||||||
else:
|
else:
|
||||||
#print "Not implemented: "+str(sys.argv)
|
#print("Not implemented: "+str(sys.argv))
|
||||||
printUsage()
|
printUsage()
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
if not output:
|
if not output:
|
||||||
print res
|
print(res)
|
||||||
else:
|
else:
|
||||||
file=open(output,"w")
|
file=open(output,"w")
|
||||||
file.write(res)
|
file.write(res)
|
||||||
|
Loading…
Reference in New Issue
Block a user