Change error message for better internationalization

This commit is contained in:
prculley 2016-09-29 13:51:16 -05:00
parent 2aa0d5aac8
commit 48e7cabc18

View File

@ -46,7 +46,7 @@ LOG = logging.getLogger(".ImportVCard")
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from gramps.gen.const import GRAMPS_LOCALE as glocale from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext _ = glocale.translation.gettext
ngettext = glocale.translation.ngettext # else "nearby" comments are ignored ngettext = glocale.translation.ngettext # else "nearby" comments are ignored
from gramps.gen.errors import GrampsImportError from gramps.gen.errors import GrampsImportError
from gramps.gen.lib import (Address, Date, DateError, Event, EventRef, from gramps.gen.lib import (Address, Date, DateError, Event, EventRef,
EventType, Name, NameType, Person, Surname, Url, UrlType) EventType, Name, NameType, Person, Surname, Url, UrlType)
@ -132,9 +132,9 @@ def fitin(prototype, receiver, element):
class VCardParser: class VCardParser:
"""Class to read data in VCard format from a file.""" """Class to read data in VCard format from a file."""
DATE_RE = re.compile(r'^(\d{4}-\d{1,2}-\d{1,2})|(?:(\d{4})-?(\d\d)-?(\d\d))') DATE_RE = re.compile(r'^(\d{4}-\d{1,2}-\d{1,2})|(?:(\d{4})-?(\d\d)-?(\d\d))')
GROUP_RE = re.compile(r'^(?:[-0-9A-Za-z]+\.)?(.+)$') # see RFC 2425 sec5.8.2 GROUP_RE = re.compile(r'^(?:[-0-9A-Za-z]+\.)?(.+)$') # see RFC 2425 sec5.8.2
ESCAPE_CHAR = '\\' ESCAPE_CHAR = '\\'
TOBE_ESCAPED = ['\\', ',', ';'] # order is important TOBE_ESCAPED = ['\\', ',', ';'] # order is important
LINE_CONTINUATION = [' ', '\t'] LINE_CONTINUATION = [' ', '\t']
@staticmethod @staticmethod
@ -147,7 +147,7 @@ class VCardParser:
while quote_count % 2 == 1: while quote_count % 2 == 1:
colon_idx = data.find(':', colon_idx + 1) colon_idx = data.find(':', colon_idx + 1)
quote_count = data.count('"', 0, colon_idx) quote_count = data.count('"', 0, colon_idx)
group_name, value = data[:colon_idx], data[colon_idx+1:] group_name, value = data[:colon_idx], data[colon_idx + 1:]
name_parts = VCardParser.GROUP_RE.match(group_name) name_parts = VCardParser.GROUP_RE.match(group_name)
return (name_parts.group(1), value) return (name_parts.group(1), value)
@ -181,7 +181,7 @@ class VCardParser:
for i in reversed(range(len(strng_parts[:]))): for i in reversed(range(len(strng_parts[:]))):
if VCardParser.count_escapes(strng_parts[i]) % 2 == 1: if VCardParser.count_escapes(strng_parts[i]) % 2 == 1:
# the sep was escaped so undo split # the sep was escaped so undo split
appendix = strng_parts.pop(i+1) appendix = strng_parts.pop(i + 1)
strng_parts[i] += sep + appendix strng_parts[i] += sep + appendix
return strng_parts return strng_parts
@ -207,7 +207,7 @@ class VCardParser:
self.line_num = self.line_num + 1 self.line_num = self.line_num + 1
while self.next_line and self.next_line[0] in self.LINE_CONTINUATION: while self.next_line and self.next_line[0] in self.LINE_CONTINUATION:
line = line.rstrip("\n") line = line.rstrip("\n")
#TODO perhaps next lines superflous because of rU open parameter? # TODO perhaps next lines superflous because of rU open parameter?
if len(line) > 0 and line[-1] == "\r": if len(line) > 0 and line[-1] == "\r":
line = line[:-1] line = line[:-1]
line += self.next_line[1:] line += self.next_line[1:]
@ -223,7 +223,8 @@ class VCardParser:
if problem != "": if problem != "":
self.number_of_errors += 1 self.number_of_errors += 1
if line: if line:
message = _("Line") + " %5d: %s\n" % (line, problem, ) message = _("Line %(line)5d: %(prob)s\n") % {"line": line,
"prob": problem}
else: else:
message = problem + "\n" message = problem + "\n"
self.errors.append(message) self.errors.append(message)
@ -248,7 +249,7 @@ class VCardParser:
).format(number_of=tym) ).format(number_of=tym)
LOG.debug(msg) LOG.debug(msg)
if self.number_of_errors == 0: if self.number_of_errors == 0:
message = _("VCARD import report: No errors detected") message = _("VCARD import report: No errors detected")
else: else:
message = _("VCARD import report: %s errors detected\n") % \ message = _("VCARD import report: %s errors detected\n") % \
self.number_of_errors self.number_of_errors
@ -316,7 +317,7 @@ class VCardParser:
pass pass
else: else:
self.__add_msg(_("Token >%s< unknown. line skipped: %s") % self.__add_msg(_("Token >%s< unknown. line skipped: %s") %
(fields[0], line), self.line_num-1) (fields[0], line), self.line_num - 1)
def finish_person(self): def finish_person(self):
"""All info has been collected, write to database.""" """All info has been collected, write to database."""
@ -331,7 +332,7 @@ class VCardParser:
self.finish_person() self.finish_person()
self.__add_msg(_("BEGIN property not properly closed by END " self.__add_msg(_("BEGIN property not properly closed by END "
"property, Gramps can't cope with nested VCards."), "property, Gramps can't cope with nested VCards."),
self.line_num-1) self.line_num - 1)
self.person = Person() self.person = Person()
self.formatted_name = '' self.formatted_name = ''
self.name_parts = '' self.name_parts = ''
@ -362,15 +363,15 @@ class VCardParser:
if not self.name_parts.strip(): if not self.name_parts.strip():
self.__add_msg(_("VCard is malformed missing the compulsory N " self.__add_msg(_("VCard is malformed missing the compulsory N "
"property, so there is no name; skip it."), "property, so there is no name; skip it."),
self.line_num-1) self.line_num - 1)
return False return False
if not self.formatted_name: if not self.formatted_name:
self.__add_msg(_("VCard is malformed missing the compulsory FN " self.__add_msg(_("VCard is malformed missing the compulsory FN "
"property, get name from N alone."), self.line_num-1) "property, get name from N alone."), self.line_num - 1)
data_fields = self.split_unescaped(self.name_parts, ';') data_fields = self.split_unescaped(self.name_parts, ';')
if len(data_fields) != 5: if len(data_fields) != 5:
self.__add_msg(_("VCard is malformed wrong number of name " self.__add_msg(_("VCard is malformed wrong number of name "
"components."), self.line_num-1) "components."), self.line_num - 1)
name = Name() name = Name()
name.set_type(NameType(NameType.BIRTH)) name.set_type(NameType(NameType.BIRTH))
@ -459,7 +460,7 @@ class VCardParser:
def add_sortas(self, fields, data): def add_sortas(self, fields, data):
"""Read the SORT-STRING property of a VCard.""" """Read the SORT-STRING property of a VCard."""
#TODO # TODO
pass pass
def add_address(self, fields, data): def add_address(self, fields, data):
@ -512,7 +513,7 @@ class VCardParser:
self.__add_msg(_( self.__add_msg(_(
"Invalid date in BDAY {vcard_snippet}, " "Invalid date in BDAY {vcard_snippet}, "
"preserving date as text." "preserving date as text."
).format(vcard_snippet=data), self.line_num-1) ).format(vcard_snippet=data), self.line_num - 1)
date.set(modifier=Date.MOD_TEXTONLY, text=data) date.set(modifier=Date.MOD_TEXTONLY, text=data)
else: else:
if date_str: if date_str:
@ -520,7 +521,7 @@ class VCardParser:
self.__add_msg(_( self.__add_msg(_(
"Date {vcard_snippet} not in appropriate format " "Date {vcard_snippet} not in appropriate format "
"yyyy-mm-dd, preserving date as text." "yyyy-mm-dd, preserving date as text."
).format(vcard_snippet=date_str), self.line_num-1) ).format(vcard_snippet=date_str), self.line_num - 1)
date.set(modifier=Date.MOD_TEXTONLY, text=date_str) date.set(modifier=Date.MOD_TEXTONLY, text=date_str)
else: # silently ignore an empty BDAY record else: # silently ignore an empty BDAY record
return return