Add ngettext, sgettext, sngettext to libtranslate.
svn: r14042
This commit is contained in:
parent
9ccdb167cd
commit
4f2f5f8986
@ -1494,7 +1494,7 @@ class Narrator(object):
|
||||
if translator is None:
|
||||
translator = Translator(Translator.DEFAULT_TRANSLATION_STR)
|
||||
|
||||
self.__translate_text = translator.get_text
|
||||
self.__translate_text = translator.gettext
|
||||
self.__get_date = translator.get_date
|
||||
|
||||
def set_subject(self, person):
|
||||
|
@ -145,9 +145,9 @@ class Translator:
|
||||
else:
|
||||
self.__dd = DateHandler.displayer
|
||||
|
||||
def get_text(self, message):
|
||||
def gettext(self, message):
|
||||
"""
|
||||
Return the translated string.
|
||||
Return the unicode translated string.
|
||||
|
||||
:param message: The message to be translated.
|
||||
:type message: string
|
||||
@ -156,9 +156,85 @@ class Translator:
|
||||
|
||||
"""
|
||||
if self.__trans is None:
|
||||
return gettext.gettext(message)
|
||||
return unicode(gettext.gettext(message))
|
||||
else:
|
||||
return self.__trans.gettext(message)
|
||||
return self.__trans.ugettext(message)
|
||||
|
||||
def ngettext(self, singular, plural, n):
|
||||
"""
|
||||
Return the unicode translated singular/plural string.
|
||||
|
||||
The translation of singular/plural is returned unless the translation is
|
||||
not available and the singular contains the separator. In that case,
|
||||
the returned value is the portion of singular following the last
|
||||
separator. Default separator is '|'.
|
||||
|
||||
:param singular: The singular form of the string to be translated.
|
||||
may contain a context separator
|
||||
:type singular: unicode
|
||||
:param plural: The plural form of the string to be translated.
|
||||
:type plural: unicode
|
||||
:param n: the amount for which to decide the translation
|
||||
:type n: int
|
||||
:returns: The translated singular/plural message
|
||||
:rtype: unicode
|
||||
|
||||
"""
|
||||
if self.__trans is None:
|
||||
return unicode(gettext.ngettext(singular, plural, n))
|
||||
else:
|
||||
return self.__trans.ungettext(singular, plural, n)
|
||||
|
||||
def sgettext(self, msgid, sep='|'):
|
||||
"""
|
||||
Strip the context used for resolving translation ambiguities.
|
||||
|
||||
The translation of msgid is returned unless the translation is
|
||||
not available and the msgid contains the separator. In that case,
|
||||
the returned value is the portion of msgid following the last
|
||||
separator. Default separator is '|'.
|
||||
|
||||
:param msgid: The string to translated.
|
||||
:type msgid: unicode
|
||||
:param sep: The separator marking the context.
|
||||
:type sep: unicode
|
||||
:returns: Translation or the original with context stripped.
|
||||
:rtype: unicode
|
||||
|
||||
"""
|
||||
msgval = self.gettext(msgid)
|
||||
if msgval == msgid:
|
||||
sep_idx = msgid.rfind(sep)
|
||||
msgval = msgid[sep_idx+1:]
|
||||
return unicode(msgval)
|
||||
|
||||
def sngettext(self, singular, plural, n, sep='|'):
|
||||
"""
|
||||
Strip the context used for resolving translation ambiguities.
|
||||
|
||||
The translation of singular/plural is returned unless the translation is
|
||||
not available and the singular contains the separator. In that case,
|
||||
the returned value is the portion of singular following the last
|
||||
separator. Default separator is '|'.
|
||||
|
||||
:param singular: The singular form of the string to be translated.
|
||||
may contain a context seperator
|
||||
:type singular: unicode
|
||||
:param plural: The plural form of the string to be translated.
|
||||
:type plural: unicode
|
||||
:param n: the amount for which to decide the translation
|
||||
:type n: int
|
||||
:param sep: The separator marking the context.
|
||||
:type sep: unicode
|
||||
:returns: Translation or the original with context stripped.
|
||||
:rtype: unicode
|
||||
|
||||
"""
|
||||
msgval = self.ngettext(singular, plural, n)
|
||||
if msgval == singular:
|
||||
sep_idx = singular.rfind(sep)
|
||||
msgval = singular[sep_idx+1:]
|
||||
return unicode(msgval)
|
||||
|
||||
def get_date(self, date):
|
||||
"""
|
||||
|
@ -101,7 +101,7 @@ class AncestorReport(Report):
|
||||
raise ReportError(_("Person %s is not in the Database") % pid )
|
||||
language = menu.get_option_by_name('trans').get_value()
|
||||
translator = Translator(language)
|
||||
self._ = translator.get_text
|
||||
self._ = translator.gettext
|
||||
self.__narrator = Narrator(self.database,
|
||||
translator=translator)
|
||||
|
||||
@ -226,7 +226,7 @@ class AncestorReport(Report):
|
||||
|
||||
self.__narrator.set_subject(person)
|
||||
self.doc.write_text(self.__narrator.get_born_string())
|
||||
self.doc.write_text(self.__narrator.get_baptized_string())
|
||||
self.doc.write_text(self.__narrator.get_baptised_string())
|
||||
self.doc.write_text(self.__narrator.get_died_string())
|
||||
self.doc.write_text(self.__narrator.get_buried_string())
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user