Merge pull request #1244 from Nick-Hall/translator
This commit is contained in:
commit
152d24fad1
@ -445,7 +445,7 @@ class ArgHandler:
|
||||
line_list = [(_('"%s"') % summary[_("Family Tree")])]
|
||||
for item in sorted(summary):
|
||||
if item != _("Family Tree"):
|
||||
# translators: used in French+Russian, ignore otherwise
|
||||
# Translators: used in French+Russian, ignore otherwise
|
||||
line_list += [(_('"%s"') % summary[item])]
|
||||
print("\t".join(line_list))
|
||||
return
|
||||
|
@ -383,7 +383,7 @@ class ArgParser:
|
||||
converter = get_type_converter(setting_value)
|
||||
new_value = converter(new_value)
|
||||
config.set(cfg_name, new_value)
|
||||
# translators: indent "New" to match "Current"
|
||||
# Translators: indent "New" to match "Current"
|
||||
print(_(" New Gramps config setting: "
|
||||
"%(name)s:%(value)s"
|
||||
) % {'name' : cfg_name,
|
||||
|
@ -197,7 +197,7 @@ class CLIDbManager:
|
||||
print(_('Family Tree "%s":') % summary[_("Family Tree")])
|
||||
for item in sorted(summary):
|
||||
if item != "Family Tree":
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
print(' ' + _("%(str1)s: %(str2)s"
|
||||
) % {'str1' : item,
|
||||
'str2' : summary[item]})
|
||||
|
@ -412,7 +412,7 @@ class CommandLineReport:
|
||||
father = self.database.get_person_from_handle(fhandle)
|
||||
if father:
|
||||
fname = name_displayer.display(father)
|
||||
# translators: needed for French, Hebrew and Arabic
|
||||
# Translators: needed for French, Hebrew and Arabic
|
||||
text = _("%(id)s:\t%(father)s, %(mother)s"
|
||||
) % {'id': family.get_gramps_id(),
|
||||
'father': fname, 'mother': mname}
|
||||
|
@ -262,7 +262,7 @@ NO_GIVEN = "(%s)" % _("none", "given-name")
|
||||
ARABIC_COMMA = "،"
|
||||
ARABIC_SEMICOLON = "؛"
|
||||
DOCGEN_OPTIONS = 'Docgen Options'
|
||||
COLON = _(':') # translators: needed for French, ignore otherwise
|
||||
COLON = _(':') # Translators: needed for French, ignore otherwise
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
@ -67,25 +67,27 @@ class DateDisplay:
|
||||
|
||||
formats = (
|
||||
# format 0 - must always be ISO
|
||||
# Translators: Numeric year, month, day
|
||||
_T_("YYYY-MM-DD (ISO)"),
|
||||
|
||||
# format # 1 - must always be locale-preferred numerical format
|
||||
# such as YY.MM.DD, MM-DD-YY, or whatever your locale prefers.
|
||||
# This should be the format that is used under the locale by
|
||||
# strftime() for '%x'.
|
||||
# You may translate this as "Numerical", "System preferred", or similar.
|
||||
# Translators: You may translate this as "Numerical",
|
||||
# "System preferred", or similar.
|
||||
_T_("Numerical", "date format"),
|
||||
|
||||
# Full month name, day, year
|
||||
# Translators: Full month name, day, year
|
||||
_T_("Month Day, Year"),
|
||||
|
||||
# Abbreviated month name, day, year
|
||||
# Translators: Abbreviated month name, day, year
|
||||
_T_("MON DAY, YEAR"),
|
||||
|
||||
# Day, full month name, year
|
||||
# Translators: Day, full month name, year
|
||||
_T_("Day Month Year"),
|
||||
|
||||
# Day, abbreviated month name, year
|
||||
# Translators: Day, abbreviated month name, year
|
||||
_T_("DAY MON YEAR")
|
||||
)
|
||||
"""
|
||||
@ -182,67 +184,67 @@ class DateDisplay:
|
||||
|
||||
"from"
|
||||
# first date in a span
|
||||
# If "from <Month>" needs a special inflection in your
|
||||
# language, translate this to "{long_month.f[X]} {year}"
|
||||
# Translators: If "from <Month>" needs a special inflection
|
||||
# in your language, translate to "{long_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{long_month} {year}", "from"),
|
||||
|
||||
"to"
|
||||
# second date in a span
|
||||
# If "to <Month>" needs a special inflection in your
|
||||
# language, translate this to "{long_month.f[X]} {year}"
|
||||
# Translators: If "to <Month>" needs a special inflection
|
||||
# in your language, translate to "{long_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{long_month} {year}", "to"),
|
||||
|
||||
"between"
|
||||
# first date in a range
|
||||
# If "between <Month>" needs a special inflection in your
|
||||
# language, translate this to "{long_month.f[X]} {year}"
|
||||
# Translators: If "between <Month>" needs a special inflection
|
||||
# in your language, translate to "{long_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{long_month} {year}", "between"),
|
||||
|
||||
"and"
|
||||
# second date in a range
|
||||
# If "and <Month>" needs a special inflection in your
|
||||
# language, translate this to "{long_month.f[X]} {year}"
|
||||
# Translators: If "and <Month>" needs a special inflection
|
||||
# in your language, translate to "{long_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{long_month} {year}", "and"),
|
||||
|
||||
"before"
|
||||
# If "before <Month>" needs a special inflection in your
|
||||
# language, translate this to "{long_month.f[X]} {year}"
|
||||
# Translators: If "before <Month>" needs a special inflection
|
||||
# in your language, translate to "{long_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{long_month} {year}", "before"),
|
||||
|
||||
"after"
|
||||
# If "after <Month>" needs a special inflection in your
|
||||
# language, translate this to "{long_month.f[X]} {year}"
|
||||
# Translators: If "after <Month>" needs a special inflection
|
||||
# in your language, translate to "{long_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{long_month} {year}", "after"),
|
||||
|
||||
"about"
|
||||
# If "about <Month>" needs a special inflection in your
|
||||
# language, translate this to "{long_month.f[X]} {year}"
|
||||
# Translators: If "about <Month>" needs a special inflection
|
||||
# in your language, translate to "{long_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{long_month} {year}", "about"),
|
||||
|
||||
"estimated"
|
||||
# If "estimated <Month>" needs a special inflection in your
|
||||
# language, translate this to "{long_month.f[X]} {year}"
|
||||
# Translators: If "estimated <Month>" needs a special inflection
|
||||
# in your language, translate to "{long_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{long_month} {year}", "estimated"),
|
||||
|
||||
"calculated"
|
||||
# If "calculated <Month>" needs a special inflection in your
|
||||
# language, translate this to "{long_month.f[X]} {year}"
|
||||
# Translators: If "calculated <Month>" needs a special inflection
|
||||
# in your language, translate to "{long_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{long_month} {year}", "calculated"),
|
||||
@ -254,67 +256,67 @@ class DateDisplay:
|
||||
|
||||
"from"
|
||||
# first date in a span
|
||||
# If "from <Month>" needs a special inflection in your
|
||||
# language, translate this to "{short_month.f[X]} {year}"
|
||||
# Translators: If "from <Month>" needs a special inflection
|
||||
# in your language, translate to "{short_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{short_month} {year}", "from"),
|
||||
|
||||
"to"
|
||||
# second date in a span
|
||||
# If "to <Month>" needs a special inflection in your
|
||||
# language, translate this to "{short_month.f[X]} {year}"
|
||||
# Translators: If "to <Month>" needs a special inflection
|
||||
# in your language, translate to "{short_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{short_month} {year}", "to"),
|
||||
|
||||
"between"
|
||||
# first date in a range
|
||||
# If "between <Month>" needs a special inflection in your
|
||||
# language, translate this to "{short_month.f[X]} {year}"
|
||||
# Translators: If "between <Month>" needs a special inflection
|
||||
# in your language, translate to "{short_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{short_month} {year}", "between"),
|
||||
|
||||
"and"
|
||||
# second date in a range
|
||||
# If "and <Month>" needs a special inflection in your
|
||||
# language, translate this to "{short_month.f[X]} {year}"
|
||||
# Translators: If "and <Month>" needs a special inflection
|
||||
# in your language, translate to "{short_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{short_month} {year}", "and"),
|
||||
|
||||
"before"
|
||||
# If "before <Month>" needs a special inflection in your
|
||||
# language, translate this to "{short_month.f[X]} {year}"
|
||||
# Translators: If "before <Month>" needs a special inflection
|
||||
# in your language, translate to "{short_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{short_month} {year}", "before"),
|
||||
|
||||
"after"
|
||||
# If "after <Month>" needs a special inflection in your
|
||||
# language, translate this to "{short_month.f[X]} {year}"
|
||||
# Translators: If "after <Month>" needs a special inflection
|
||||
# in your language, translate to "{short_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{short_month} {year}", "after"),
|
||||
|
||||
"about"
|
||||
# If "about <Month>" needs a special inflection in your
|
||||
# language, translate this to "{short_month.f[X]} {year}"
|
||||
# Translators: If "about <Month>" needs a special inflection
|
||||
# in your language, translate to "{short_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{short_month} {year}", "about"),
|
||||
|
||||
"estimated"
|
||||
# If "estimated <Month>" needs a special inflection in your
|
||||
# language, translate this to "{short_month.f[X]} {year}"
|
||||
# Translators: If "estimated <Month>" needs a special inflection
|
||||
# in your language, translate to "{short_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{short_month} {year}", "estimated"),
|
||||
|
||||
"calculated"
|
||||
# If "calculated <Month>" needs a special inflection in your
|
||||
# language, translate this to "{short_month.f[X]} {year}"
|
||||
# Translators: If "calculated <Month>" needs a special inflection
|
||||
# in your language, translate to "{short_month.f[X]} {year}"
|
||||
# (where X is one of the month-name inflections you defined)
|
||||
# else leave it untranslated
|
||||
: _("{short_month} {year}", "calculated"),
|
||||
@ -421,14 +423,14 @@ class DateDisplay:
|
||||
qual_str = self._qual_str[date.get_quality()]
|
||||
scal = self.format_extras(cal, date.get_new_year())
|
||||
d1 = self.display_cal[cal](date.get_start_date(),
|
||||
# If there is no special inflection for "from <Month>"
|
||||
# in your language, DON'T translate this string. Otherwise,
|
||||
# "translate" this to "from" in ENGLISH!!! ENGLISH!!!
|
||||
# Translators: If there is no special inflection for
|
||||
# "from <Month>" in your language, DON'T translate this.
|
||||
# Otherwise, translate to "from" in ENGLISH!!! ENGLISH!!!
|
||||
inflect=self._("", "from-date"))
|
||||
d2 = self.display_cal[cal](date.get_stop_date(),
|
||||
# If there is no special inflection for "to <Month>"
|
||||
# in your language, DON'T translate this string. Otherwise,
|
||||
# "translate" this to "to" in ENGLISH!!! ENGLISH!!!
|
||||
# Translators: If there is no special inflection for
|
||||
# "to <Month>" in your language, DON'T translate this.
|
||||
# Otherwise, translate to "to" in ENGLISH!!! ENGLISH!!!
|
||||
inflect=self._("", "to-date"))
|
||||
return self._("{date_quality}from {date_start} to {date_stop}"
|
||||
"{nonstd_calendar_and_ny}").format(
|
||||
@ -446,14 +448,14 @@ class DateDisplay:
|
||||
qual_str = self._qual_str[date.get_quality()]
|
||||
scal = self.format_extras(cal, date.get_new_year())
|
||||
d1 = self.display_cal[cal](date.get_start_date(),
|
||||
# If there is no special inflection for "between <Month>"
|
||||
# in your language, DON'T translate this string. Otherwise,
|
||||
# "translate" this to "between" in ENGLISH!!! ENGLISH!!!
|
||||
# Translators: If there is no special inflection for
|
||||
# "between <Month>" in your language, DON'T translate this.
|
||||
# Otherwise, translate to "between" in ENGLISH!!! ENGLISH!!!
|
||||
inflect=self._("", "between-date"))
|
||||
d2 = self.display_cal[cal](date.get_stop_date(),
|
||||
# If there is no special inflection for "and <Month>"
|
||||
# in your language, DON'T translate this string. Otherwise,
|
||||
# "translate" this to "and" in ENGLISH!!! ENGLISH!!!
|
||||
# Translators: If there is no special inflection for
|
||||
# "and <Month>" in your language, DON'T translate this.
|
||||
# Otherwise, translate to "and" in ENGLISH!!! ENGLISH!!!
|
||||
inflect=self._("", "and-date"))
|
||||
return self._("{date_quality}between {date_start} and {date_stop}"
|
||||
"{nonstd_calendar_and_ny}").format(
|
||||
@ -485,29 +487,29 @@ class DateDisplay:
|
||||
return self.dd_range(date)
|
||||
else:
|
||||
if mod == Date.MOD_BEFORE:
|
||||
# If there is no special inflection for "before <Month>"
|
||||
# in your language, DON'T translate this string. Otherwise,
|
||||
# "translate" this to "before" in ENGLISH!!! ENGLISH!!!
|
||||
# Translators: If there is no special inflection for
|
||||
# "before <Month>" in your language, DON'T translate this.
|
||||
# Otherwise, translate to "before" in ENGLISH!!! ENGLISH!!!
|
||||
date_type = _("", "before-date")
|
||||
elif mod == Date.MOD_AFTER:
|
||||
# If there is no special inflection for "after <Month>"
|
||||
# in your language, DON'T translate this string. Otherwise,
|
||||
# "translate" this to "after" in ENGLISH!!! ENGLISH!!!
|
||||
# Translators: If there is no special inflection for
|
||||
# "after <Month>" in your language, DON'T translate this.
|
||||
# Otherwise, translate to "after" in ENGLISH!!! ENGLISH!!!
|
||||
date_type = _("", "after-date")
|
||||
elif mod == Date.MOD_ABOUT:
|
||||
# If there is no special inflection for "about <Month>"
|
||||
# in your language, DON'T translate this string. Otherwise,
|
||||
# "translate" this to "about" in ENGLISH!!! ENGLISH!!!
|
||||
# Translators: If there is no special inflection for
|
||||
# "about <Month>" in your language, DON'T translate this.
|
||||
# Otherwise, translate to "about" in ENGLISH!!! ENGLISH!!!
|
||||
date_type = _("", "about-date")
|
||||
elif qual == Date.QUAL_ESTIMATED:
|
||||
# If there is no special inflection for "estimated <Month>"
|
||||
# in your language, DON'T translate this string. Otherwise,
|
||||
# "translate" this to "estimated" in ENGLISH!!! ENGLISH!!!
|
||||
# Translators: If there is no special inflection for
|
||||
# "estimated <Month>" in your language, DON'T translate this.
|
||||
# Otherwise, translate to "estimated" in ENGLISH!!! ENGLISH!!!
|
||||
date_type = _("", "estimated-date")
|
||||
elif qual == Date.QUAL_CALCULATED:
|
||||
# If there is no special inflection for "calculated <Month>"
|
||||
# in your language, DON'T translate this string. Otherwise,
|
||||
# "translate" this to "calculated" in ENGLISH!!! ENGLISH!!!
|
||||
# Translators: If there is no special inflection for
|
||||
# "calculated <Month>" in your language, DON'T translate this.
|
||||
# Otherwise, translate to "calculated" in ENGLISH!!! ENGLISH!!!
|
||||
date_type = _("", "calculated-date")
|
||||
else:
|
||||
date_type = ""
|
||||
@ -645,7 +647,7 @@ class DateDisplay:
|
||||
elif date_val[1] == 0: # month is zero but day is not (see 8477)
|
||||
return self.display_iso(date_val)
|
||||
else:
|
||||
# TRANSLATORS: this month is ALREADY inflected: ignore it
|
||||
# Translators: this month is ALREADY inflected: ignore it
|
||||
return _("{long_month} {day:d}, {year}").format(
|
||||
long_month = self.format_long_month(date_val[1],
|
||||
inflect,
|
||||
@ -671,7 +673,7 @@ class DateDisplay:
|
||||
elif date_val[1] == 0: # month is zero but day is not (see 8477)
|
||||
return self.display_iso(date_val)
|
||||
else:
|
||||
# TRANSLATORS: this month is ALREADY inflected: ignore it
|
||||
# Translators: this month is ALREADY inflected: ignore it
|
||||
return _("{short_month} {day:d}, {year}").format(
|
||||
short_month = self.format_short_month(date_val[1],
|
||||
inflect,
|
||||
@ -697,7 +699,7 @@ class DateDisplay:
|
||||
elif date_val[1] == 0: # month is zero but day is not (see 8477)
|
||||
return self.display_iso(date_val)
|
||||
else:
|
||||
# TRANSLATORS: this month is ALREADY inflected: ignore it
|
||||
# Translators: this month is ALREADY inflected: ignore it
|
||||
return _("{day:d} {long_month} {year}").format(
|
||||
day = date_val[0],
|
||||
long_month = self.format_long_month(date_val[1],
|
||||
@ -723,7 +725,7 @@ class DateDisplay:
|
||||
elif date_val[1] == 0: # month is zero but day is not (see 8477)
|
||||
return self.display_iso(date_val)
|
||||
else:
|
||||
# TRANSLATORS: this month is ALREADY inflected: ignore it
|
||||
# Translators: this month is ALREADY inflected: ignore it
|
||||
return _("{day:d} {short_month} {year}").format(
|
||||
day = date_val[0],
|
||||
short_month = self.format_short_month(date_val[1],
|
||||
@ -761,7 +763,8 @@ class DateDisplay:
|
||||
# day month_abbreviation year
|
||||
value = self.dd_dformat05(date_val, inflect, short_months)
|
||||
if date_val[2] < 0:
|
||||
# TODO fix BUG 7064: non-Gregorian calendars wrongly use BCE notation for negative dates
|
||||
# TODO fix BUG 7064: non-Gregorian calendars wrongly use BCE notation
|
||||
# for negative dates
|
||||
return self._bce_str % value
|
||||
else:
|
||||
return value
|
||||
|
@ -72,7 +72,7 @@ class DateStrings:
|
||||
_ = locale.translation.lexgettext
|
||||
|
||||
self.long_months = ( "",
|
||||
# TRANSLATORS: see
|
||||
# Translators: see
|
||||
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
|
||||
# to learn how to select proper inflection to be used in your localized
|
||||
# DateDisplayer code!
|
||||
@ -90,7 +90,7 @@ class DateStrings:
|
||||
_("|December", "localized lexeme inflections") )
|
||||
|
||||
self.short_months = ( "",
|
||||
# TRANSLATORS: see
|
||||
# Translators: see
|
||||
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
|
||||
# to learn how to select proper inflection to be used in your localized
|
||||
# DateDisplayer code!
|
||||
@ -109,7 +109,7 @@ class DateStrings:
|
||||
|
||||
_ = locale.translation.sgettext
|
||||
self.alt_long_months = ( "",
|
||||
# TRANSLATORS: see
|
||||
# Translators: see
|
||||
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
|
||||
# to learn how to add proper alternatives to be recognized in your localized
|
||||
# DateParser code!
|
||||
@ -139,7 +139,7 @@ class DateStrings:
|
||||
|
||||
self.hebrew = (
|
||||
"",
|
||||
# TRANSLATORS: see
|
||||
# Translators: see
|
||||
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
|
||||
# to learn how to select proper inflection to be used in your localized
|
||||
# DateDisplayer code!
|
||||
@ -160,7 +160,7 @@ class DateStrings:
|
||||
|
||||
self.french = (
|
||||
"",
|
||||
# TRANSLATORS: see
|
||||
# Translators: see
|
||||
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
|
||||
# to learn how to select proper inflection to be used in your localized
|
||||
# DateDisplayer code!
|
||||
@ -181,7 +181,7 @@ class DateStrings:
|
||||
|
||||
self.islamic = (
|
||||
"",
|
||||
# TRANSLATORS: see
|
||||
# Translators: see
|
||||
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
|
||||
# to learn how to select proper inflection to be used in your localized
|
||||
# DateDisplayer code!
|
||||
@ -201,7 +201,7 @@ class DateStrings:
|
||||
|
||||
self.persian = (
|
||||
"",
|
||||
# TRANSLATORS: see
|
||||
# Translators: see
|
||||
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
|
||||
# to learn how to select proper inflection to be used in your localized
|
||||
# DateDisplayer code!
|
||||
@ -220,13 +220,13 @@ class DateStrings:
|
||||
)
|
||||
|
||||
self.modifiers = ("",
|
||||
# TRANSLATORS: if the modifier is after the date
|
||||
# Translators: if the modifier is after the date
|
||||
# put the space ahead of the word instead of after it
|
||||
_("before ", "date modifier"),
|
||||
# TRANSLATORS: if the modifier is after the date
|
||||
# Translators: if the modifier is after the date
|
||||
# put the space ahead of the word instead of after it
|
||||
_("after ", "date modifier"),
|
||||
# TRANSLATORS: if the modifier is after the date
|
||||
# Translators: if the modifier is after the date
|
||||
# put the space ahead of the word instead of after it
|
||||
_("about ", "date modifier"),
|
||||
"", "", "")
|
||||
|
@ -345,7 +345,7 @@ class NameDisplay:
|
||||
global WITH_GRAMPS_CONFIG
|
||||
global PAT_AS_SURN
|
||||
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
COMMAGLYPH = xlocale.translation.gettext(',')
|
||||
|
||||
self.STANDARD_FORMATS = [
|
||||
@ -358,7 +358,7 @@ class NameDisplay:
|
||||
(Name.FNLN, _("Given Surname Suffix"),
|
||||
'%f %l %s', _ACT),
|
||||
# primary name primconnector other, given pa/matronynic suffix, primprefix
|
||||
# translators: long string, have a look at Preferences dialog
|
||||
# Translators: long string, have a look at Preferences dialog
|
||||
(Name.LNFNP, _("Main Surnames, Given Patronymic Suffix Prefix"),
|
||||
'%1m %2m %o' + COMMAGLYPH + ' %f %1y %s %0m', _ACT),
|
||||
# DEPRECATED FORMATS
|
||||
|
@ -423,23 +423,23 @@ class Span:
|
||||
retval = ""
|
||||
detail = 0
|
||||
if diff_tuple[0] != 0:
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
retval += ngettext("{number_of} year", "{number_of} years",
|
||||
diff_tuple[0]
|
||||
).format(number_of=diff_tuple[0])
|
||||
detail += 1
|
||||
if self.precision == detail:
|
||||
if diff_tuple[1] >= 6: # round up years
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
retval = ngettext("{number_of} year", "{number_of} years",
|
||||
diff_tuple[0] + 1
|
||||
).format(number_of=diff_tuple[0] + 1)
|
||||
return retval
|
||||
if diff_tuple[1] != 0:
|
||||
if retval != "":
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
retval += trans_text(", ")
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
retval += ngettext("{number_of} month", "{number_of} months",
|
||||
diff_tuple[1]
|
||||
).format(number_of=diff_tuple[1])
|
||||
@ -448,9 +448,9 @@ class Span:
|
||||
return retval
|
||||
if diff_tuple[2] != 0:
|
||||
if retval != "":
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
retval += trans_text(", ")
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
retval += ngettext("{number_of} day", "{number_of} days",
|
||||
diff_tuple[2]
|
||||
).format(number_of=diff_tuple[2])
|
||||
|
@ -457,11 +457,11 @@ class Name(SecondaryObject, PrivacyBase, SurnameBase, CitationBase, NoteBase,
|
||||
first = self.first_name
|
||||
surname = self.get_surname()
|
||||
if self.suffix:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
return _("%(surname)s, %(first)s %(suffix)s"
|
||||
) % {'surname':surname, 'first':first, 'suffix':self.suffix}
|
||||
else:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
return _("%(str1)s, %(str2)s") % {'str1':surname, 'str2':first}
|
||||
|
||||
def get_upper_name(self):
|
||||
@ -472,11 +472,11 @@ class Name(SecondaryObject, PrivacyBase, SurnameBase, CitationBase, NoteBase,
|
||||
first = self.first_name
|
||||
surname = self.get_surname().upper()
|
||||
if self.suffix:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
return _("%(surname)s, %(first)s %(suffix)s"
|
||||
) % {'surname':surname, 'first':first, 'suffix':self.suffix}
|
||||
else:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
return _("%(str1)s, %(str2)s") % {'str1':surname, 'str2':first}
|
||||
|
||||
def get_regular_name(self):
|
||||
@ -489,7 +489,7 @@ class Name(SecondaryObject, PrivacyBase, SurnameBase, CitationBase, NoteBase,
|
||||
if self.suffix == "":
|
||||
return "%s %s" % (first, surname)
|
||||
else:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
return _("%(first)s %(surname)s, %(suffix)s"
|
||||
) % {'surname':surname, 'first':first, 'suffix':self.suffix}
|
||||
|
||||
|
@ -114,7 +114,7 @@ def cite_source(bibliography, database, obj, elocale=glocale):
|
||||
first = True
|
||||
for ref in slist:
|
||||
if not first:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
txt += trans_text(', ')
|
||||
first = False
|
||||
citation = database.get_citation_from_handle(ref)
|
||||
@ -171,7 +171,7 @@ def write_endnotes(bibliography, database, doc, printnotes=False, links=False,
|
||||
'Endnotes-Source-Notes', links)
|
||||
|
||||
for key, ref in citation.get_ref_list():
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
doc.start_paragraph('Endnotes-Ref', trans_text('%s:') % key)
|
||||
doc.write_text(_format_ref_text(ref, key, elocale), links=links)
|
||||
doc.end_paragraph()
|
||||
@ -193,20 +193,20 @@ def _format_source_text(source, elocale):
|
||||
|
||||
if source.get_title():
|
||||
if src_txt:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
src_txt += trans_text(', ')
|
||||
# translators: used in French+Russian, ignore otherwise
|
||||
# Translators: used in French+Russian, ignore otherwise
|
||||
src_txt += trans_text('"%s"') % source.get_title()
|
||||
|
||||
if source.get_publication_info():
|
||||
if src_txt:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
src_txt += trans_text(', ')
|
||||
src_txt += source.get_publication_info()
|
||||
|
||||
if source.get_abbreviation():
|
||||
if src_txt:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
src_txt += trans_text(', ')
|
||||
src_txt += "(%s)" % source.get_abbreviation()
|
||||
|
||||
|
@ -252,7 +252,7 @@ def get_address_str(addr):
|
||||
if addr_str == "":
|
||||
addr_str = info
|
||||
else:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
addr_str = _("%(str1)s, %(str2)s"
|
||||
) % {'str1' : addr_str, 'str2' : info}
|
||||
return addr_str
|
||||
|
@ -116,7 +116,7 @@ class GrampsAboutDialog(Gtk.AboutDialog):
|
||||
if len(contributors) > 0:
|
||||
self.add_credit_section(_('Contributions by'), contributors)
|
||||
|
||||
# TRANSLATORS: Translate this to your name in your native language
|
||||
# Translators: Translate this to your name in your native language
|
||||
self.set_translator_credits(_("translator-credits"))
|
||||
|
||||
self.set_documenters(DOCUMENTERS)
|
||||
|
@ -410,7 +410,7 @@ class ConfigureDialog(ManagedWindow):
|
||||
if not callback:
|
||||
callback = self.update_entry
|
||||
if label:
|
||||
lwidget = BasicLabel(_("%s: ") % label) # translators: for French
|
||||
lwidget = BasicLabel(_("%s: ") % label) # Translators: for French
|
||||
entry = Gtk.Entry()
|
||||
if localized_config:
|
||||
entry.set_text(config.get(constant))
|
||||
|
@ -991,14 +991,14 @@ class EditFamily(EditPrimary):
|
||||
if birth:
|
||||
#if event changes it view needs to update
|
||||
self.callman.register_handles({'event': [birth.get_handle()]})
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
birth_label.set_label(_("%s:") % birth.get_type())
|
||||
|
||||
death = get_death_or_fallback(db, person)
|
||||
if death:
|
||||
#if event changes it view needs to update
|
||||
self.callman.register_handles({'event': [death.get_handle()]})
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
death_label.set_label(_("%s:") % death.get_type())
|
||||
|
||||
btn_edit.set_tooltip_text(_('Edit %s') % name)
|
||||
|
@ -209,12 +209,12 @@ class EditPlace(EditPrimary):
|
||||
def _validate_coordinate(self, widget, text, typedeg):
|
||||
if (typedeg == 'lat') and not conv_lat_lon(text, "0", "ISO-D"):
|
||||
return ValidationError(
|
||||
# translators: translate the "S" too (and the "or" of course)
|
||||
# Translators: translate the "S" too (and the "or" of course)
|
||||
_('Invalid latitude\n(syntax: '
|
||||
'18\u00b09\'48.21"S, -18.2412 or -18:9:48.21)'))
|
||||
elif (typedeg == 'lon') and not conv_lat_lon("0", text, "ISO-D"):
|
||||
return ValidationError(
|
||||
# translators: translate the "E" too (and the "or" of course)
|
||||
# Translators: translate the "E" too (and the "or" of course)
|
||||
_('Invalid longitude\n(syntax: '
|
||||
'18\u00b09\'48.21"E, -18.2412 or -18:9:48.21)'))
|
||||
|
||||
|
@ -203,12 +203,12 @@ class EditPlaceRef(EditReference):
|
||||
def _validate_coordinate(self, widget, text, typedeg):
|
||||
if (typedeg == 'lat') and not conv_lat_lon(text, "0", "ISO-D"):
|
||||
return ValidationError(
|
||||
# translators: translate the "S" too (and the "or" of course)
|
||||
# Translators: translate the "S" too (and the "or" of course)
|
||||
_('Invalid latitude\n(syntax: '
|
||||
'18\u00b09\'48.21"S, -18.2412 or -18:9:48.21)'))
|
||||
elif (typedeg == 'lon') and not conv_lat_lon("0", text, "ISO-D"):
|
||||
return ValidationError(
|
||||
# translators: translate the "E" too (and the "or" of course)
|
||||
# Translators: translate the "E" too (and the "or" of course)
|
||||
_('Invalid longitude\n(syntax: '
|
||||
'18\u00b09\'48.21"E, -18.2412 or -18:9:48.21)'))
|
||||
|
||||
|
@ -58,7 +58,7 @@ WIKI_HELP_PAGE = URL_MANUAL_SECT3
|
||||
WIKI_HELP_SEC = _("Merge_People", "manual")
|
||||
_GLADE_FILE = "mergeperson.glade"
|
||||
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
KEYVAL = _("%(key)s:\t%(value)s")
|
||||
|
||||
sex = ( _("female"), _("male"), _("unknown") )
|
||||
@ -214,7 +214,7 @@ class MergePerson(ManagedWindow):
|
||||
self.add(tobj, normal,
|
||||
KEYVAL % {'key': name, 'value': ev_info})
|
||||
else:
|
||||
self.add(tobj, normal, # translators: needed for French
|
||||
self.add(tobj, normal, # Translators: needed for French
|
||||
"%(name)s (%(role)s):\t%(info)s"
|
||||
% {'name': name, 'role': role,
|
||||
'info': ev_info})
|
||||
|
@ -1117,7 +1117,7 @@ class UpdateAddons(ManagedWindow):
|
||||
last_category = None
|
||||
for (status,plugin_url,plugin_dict) in addon_update_list:
|
||||
count = get_count(addon_update_list, plugin_dict["t"])
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
category = _("%(str1)s: %(str2)s") % {'str1' : status,
|
||||
'str2' : _(plugin_dict["t"])}
|
||||
if last_category != category:
|
||||
@ -1220,7 +1220,7 @@ class UpdateAddons(ManagedWindow):
|
||||
if count:
|
||||
self.rescan = True
|
||||
OkDialog(_("Done downloading and installing addons"),
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
"%s %s" % (ngettext("{number_of} addon was installed.",
|
||||
"{number_of} addons were installed.",
|
||||
count).format(number_of=count),
|
||||
|
@ -163,7 +163,7 @@ class WriterOptionBox:
|
||||
label = Gtk.Label(label=_("Unfiltered Family Tree:"))
|
||||
full_database_row.pack_start(label, True, True, 0)
|
||||
people_count = len(self.dbstate.db.get_person_handles())
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
button = Gtk.Button(label=ngettext("{number_of} Person",
|
||||
"{number_of} People", people_count
|
||||
).format(number_of=people_count))
|
||||
@ -270,7 +270,7 @@ class WriterOptionBox:
|
||||
# Make a box and put the option in it:
|
||||
from gi.repository import Gtk
|
||||
from ...widgets import SimpleButton
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
button = Gtk.Button(label=ngettext("{number_of} Person",
|
||||
"{number_of} People", 0
|
||||
).format(number_of=0))
|
||||
@ -578,7 +578,7 @@ class WriterOptionBox:
|
||||
self.preview_proxy_button[proxy_name].set_sensitive(1)
|
||||
people_count = len(dbase.get_person_handles())
|
||||
self.preview_proxy_button[proxy_name].set_label(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{number_of} Person",
|
||||
"{number_of} People", people_count
|
||||
).format(number_of=people_count) )
|
||||
|
@ -373,7 +373,7 @@ class ReportDialog(ManagedWindow):
|
||||
for (text, widget) in self.widgets:
|
||||
widget.set_hexpand(True)
|
||||
if text:
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
text_widget = Gtk.Label(label=_("%s:") % text)
|
||||
text_widget.set_halign(Gtk.Align.START)
|
||||
grid.attach(text_widget, 1, row, 1, 1)
|
||||
|
@ -361,7 +361,7 @@ class Calendar(Report):
|
||||
text = self._('%(person)s, birth') % {
|
||||
'person' : short_name }
|
||||
else:
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
text = ngettext('{person}, {age}',
|
||||
'{person}, {age}',
|
||||
nyears).format(person=short_name,
|
||||
@ -423,7 +423,7 @@ class Calendar(Report):
|
||||
'person' : short_name,
|
||||
}
|
||||
else:
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
text = ngettext("{spouse} and\n {person}, {nyears}",
|
||||
"{spouse} and\n {person}, {nyears}",
|
||||
nyears).format(spouse=spouse_name, person=short_name, nyears=nyears)
|
||||
|
@ -354,7 +354,7 @@ class TitleC(DescendantTitleBase):
|
||||
for kid in family.get_child_ref_list()]
|
||||
|
||||
#ok we have the children. Make a title off of them
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
cousin_names = self._(', ').join(self._get_names(kids, self._nd))
|
||||
|
||||
self.text = self._(
|
||||
|
@ -268,7 +268,7 @@ class PedigreeGramplet(Gramplet):
|
||||
tooltip=_("Double-click to see people in generation %d") % g)
|
||||
percent = glocale.format('%.2f', float(count)/2**(g-1) * 100) + percent_sign
|
||||
self.append_text(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext(" has {count_person} of {max_count_person} "
|
||||
"individuals ({percent} complete)\n",
|
||||
" has {count_person} of {max_count_person} "
|
||||
@ -279,7 +279,7 @@ class PedigreeGramplet(Gramplet):
|
||||
self.link(_("All generations"), 'PersonList', all,
|
||||
tooltip=_("Double-click to see all generations"))
|
||||
self.append_text(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext(" have {number_of} individual\n",
|
||||
" have {number_of} individuals\n", len(all)
|
||||
).format(number_of=len(all)))
|
||||
|
@ -234,7 +234,7 @@ class PersonDetails(Gramplet):
|
||||
if attr.get_type() == attr_key:
|
||||
values.append(attr.get_value())
|
||||
if values:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
self.add_row(attr_key, _(', ').join(values))
|
||||
|
||||
def display_type(self, active_person, event_type):
|
||||
|
@ -86,7 +86,7 @@ class LogGramplet(Gramplet):
|
||||
continue
|
||||
self.last_log = (ltype, action, handle)
|
||||
self.timestamp()
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
self.append_text(_("%s: ") % _(action))
|
||||
if action == 'Deleted':
|
||||
transaction = self.dbstate.db.transaction
|
||||
|
@ -490,7 +490,7 @@ class WhatNextGramplet(Gramplet):
|
||||
missingbits.append(_("place unknown"))
|
||||
|
||||
if missingbits:
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
return [_("%(str1)s: %(str2)s"
|
||||
) % {'str1' : event.get_type(),
|
||||
'str2' : _(", ").join(missingbits)}] # Arabic OK
|
||||
|
@ -487,7 +487,7 @@ class FamilyLinesReport(Report):
|
||||
person = self._db.get_person_from_handle(handle)
|
||||
gid = person.get_gramps_id()
|
||||
name = person.get_primary_name().get_regular_name()
|
||||
# translators: needed for Arabic, ignore othewise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
id_n = self._("%(str1)s, %(str2)s") % {'str1':gid, 'str2':name}
|
||||
self.doc.add_comment('# -> ' + id_n)
|
||||
|
||||
@ -978,7 +978,7 @@ class FamilyLinesReport(Report):
|
||||
if self._incchildcount:
|
||||
child_count = len(family.get_child_ref_list())
|
||||
if child_count >= 1:
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
children_str = ngettext("{number_of} child",
|
||||
"{number_of} children", child_count
|
||||
).format(number_of=child_count)
|
||||
|
@ -370,7 +370,7 @@ class CSVParser:
|
||||
self.db.enable_signals()
|
||||
self.db.request_rebuild()
|
||||
tym = time.time() - tym
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
msg = ngettext('Import Complete: {number_of} second',
|
||||
'Import Complete: {number_of} seconds', tym
|
||||
).format(number_of=tym)
|
||||
|
@ -270,7 +270,7 @@ class GeneWebParser:
|
||||
self.errmsg(str(err))
|
||||
|
||||
t = time.time() - t
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
msg = ngettext('Import Complete: {number_of} second',
|
||||
'Import Complete: {number_of} seconds', t
|
||||
).format(number_of=t)
|
||||
@ -906,7 +906,7 @@ class GeneWebParser:
|
||||
date.set(Date.QUAL_NONE,mod, cal1,
|
||||
(sub1[0],sub1[1],sub1[2],0,sub2[0],sub2[1],sub2[2],0))
|
||||
except DateError as e:
|
||||
# TRANSLATORS: leave the {date} and {gw_snippet} untranslated
|
||||
# Translators: leave the {date} and {gw_snippet} untranslated
|
||||
# in the format string, but you may re-order them if needed.
|
||||
LOG.warning(_(
|
||||
"Invalid date {date} in {gw_snippet}, "
|
||||
|
@ -245,7 +245,7 @@ class VCardParser:
|
||||
self.database.enable_signals()
|
||||
self.database.request_rebuild()
|
||||
tym = time.time() - tym
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
msg = ngettext('Import Complete: {number_of} second',
|
||||
'Import Complete: {number_of} seconds', tym
|
||||
).format(number_of=tym)
|
||||
@ -511,7 +511,7 @@ class VCardParser:
|
||||
try:
|
||||
date.set(value=(d, m, y, False))
|
||||
except DateError:
|
||||
# TRANSLATORS: leave the {vcard_snippet} untranslated
|
||||
# Translators: leave the {vcard_snippet} untranslated
|
||||
# in the format string, but you may re-order it if needed.
|
||||
self.__add_msg(_(
|
||||
"Invalid date in BDAY {vcard_snippet}, "
|
||||
@ -520,7 +520,7 @@ class VCardParser:
|
||||
date.set(modifier=Date.MOD_TEXTONLY, text=data)
|
||||
else:
|
||||
if date_str:
|
||||
# TRANSLATORS: leave the {vcard_snippet} untranslated.
|
||||
# Translators: leave the {vcard_snippet} untranslated.
|
||||
self.__add_msg(_(
|
||||
"Date {vcard_snippet} not in appropriate format "
|
||||
"yyyy-mm-dd, preserving date as text."
|
||||
|
@ -2523,7 +2523,7 @@ class GrampsParser(UpdateCallback):
|
||||
attrs = " ".join(
|
||||
['{}="{}"'.format(k,escape(v, entities={'"' : """}))
|
||||
for k,v in xml_attrs.items()]))
|
||||
# TRANSLATORS: leave the {date} and {xml} untranslated in the format string,
|
||||
# Translators: leave the {date} and {xml} untranslated in the format string,
|
||||
# but you may re-order them if needed.
|
||||
LOG.warning(_("Invalid date {date} in XML {xml}, preserving XML as text"
|
||||
).format(date=date_error.date.__dict__, xml=xml))
|
||||
|
@ -513,7 +513,7 @@ def _get_styled(name, callname, placeholder=False,
|
||||
elif callname == CALLNAME_UNDERLINE_ADD:
|
||||
if n.call not in n.first_name:
|
||||
# Add call name to first name.
|
||||
# translators: used in French+Russian, ignore otherwise
|
||||
# Translators: used in French+Russian, ignore otherwise
|
||||
n.first_name = trans_text('"%(callname)s" (%(firstname)s)') % {
|
||||
'callname': n.call,
|
||||
'firstname': n.first_name }
|
||||
|
@ -703,7 +703,7 @@ class PageNumberBox(BoxBase):
|
||||
|
||||
def __calc_position(self, page):
|
||||
""" calculate where I am to print on the page(s) """
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
self.text = "(%d" + self._(',') + "%d)"
|
||||
|
||||
style_sheet = self.doc.get_style_sheet()
|
||||
|
@ -416,7 +416,7 @@ def run(database, document, filter_name, *args, **kwargs):
|
||||
|
||||
else:
|
||||
raise AttributeError("invalid filter name: '%s'" % filter_name)
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
sdoc.paragraph(ngettext("Filter matched {number_of} record.",
|
||||
"Filter matched {number_of} records.", matches
|
||||
).format(number_of=matches) )
|
||||
|
@ -131,7 +131,7 @@ def run(database, document, person):
|
||||
|
||||
document.has_data = matches > 0
|
||||
sdoc.paragraph(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("There is {number_of} person "
|
||||
"with a matching name, or alternate name.\n",
|
||||
"There are {number_of} people "
|
||||
@ -176,7 +176,7 @@ def run_given(database, document, person):
|
||||
|
||||
document.has_data = matches > 0
|
||||
sdoc.paragraph(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("There is {number_of} person "
|
||||
"with a matching name, or alternate name.\n",
|
||||
"There are {number_of} people "
|
||||
|
@ -334,7 +334,7 @@ class BirthdayReport(Report):
|
||||
'person' : short_name,
|
||||
'relation' : comment}
|
||||
else:
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
text = ngettext('* {year}{person}{dead}, {age}{relation}',
|
||||
'* {year}{person}{dead}, {age}{relation}',
|
||||
nyears).format(year=yeartxt,
|
||||
@ -403,7 +403,7 @@ class BirthdayReport(Report):
|
||||
'spouse' : spouse_name,
|
||||
'person' : short_name}
|
||||
else:
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
text = ngettext("⚭ {year}{spouse}{deadtxt2} and\n {person}{deadtxt1}, {nyears}",
|
||||
"⚭ {year}{spouse}{deadtxt2} and\n {person}{deadtxt1}, {nyears}",
|
||||
nyears).format(year=yeartxt, spouse=spouse_name, deadtxt2=deadtxt2, person=short_name, deadtxt1=deadtxt1, nyears=nyears)
|
||||
|
@ -413,7 +413,7 @@ class DetAncestorReport(Report):
|
||||
date = addr.get_date_object().get_year()
|
||||
|
||||
if date:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
self.doc.write_text(self._('%s, ') % date)
|
||||
self.doc.write_text(text)
|
||||
self.doc.write_text_citation(self.endnotes(addr))
|
||||
@ -426,7 +426,7 @@ class DetAncestorReport(Report):
|
||||
for attr in attrs:
|
||||
self.doc.start_paragraph('DAR-MoreDetails')
|
||||
attr_name = attr.get_type().type2base()
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
text = self._("%(type)s: %(value)s%(endnotes)s"
|
||||
) % {'type' : self._(attr_name),
|
||||
'value' : attr.get_value(),
|
||||
@ -450,7 +450,7 @@ class DetAncestorReport(Report):
|
||||
|
||||
self.doc.start_paragraph('DAR-MoreDetails')
|
||||
if date and place:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
text += self._('%(str1)s, %(str2)s'
|
||||
) % {'str1' : date, 'str2' : place}
|
||||
elif date:
|
||||
@ -471,7 +471,7 @@ class DetAncestorReport(Report):
|
||||
event_name = self._(self._get_type(event.get_type()))
|
||||
role = event_ref.get_role()
|
||||
if role in (EventRoleType.PRIMARY, EventRoleType.FAMILY):
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
text = self._('%(str1)s: %(str2)s'
|
||||
) % {'str1' : event_name, 'str2' : text}
|
||||
else:
|
||||
@ -491,10 +491,10 @@ class DetAncestorReport(Report):
|
||||
attr_list.extend(event_ref.get_attribute_list())
|
||||
for attr in attr_list:
|
||||
if text:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
text += self._("; ")
|
||||
attr_name = attr.get_type().type2base()
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
text += self._("%(type)s: %(value)s%(endnotes)s"
|
||||
) % {'type' : self._(attr_name),
|
||||
'value' : attr.get_value(),
|
||||
|
@ -411,7 +411,7 @@ class DetDescendantReport(Report):
|
||||
if index == 1:
|
||||
self.doc.write_text(name + "-" + str(index) + ") ")
|
||||
else:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
self.doc.write_text(name + "-" + str(index) + self._("; "))
|
||||
index -= 1
|
||||
|
||||
@ -483,7 +483,7 @@ class DetDescendantReport(Report):
|
||||
self.doc.start_paragraph('DDR-MoreDetails')
|
||||
event_name = self._get_type(event.get_type())
|
||||
if date and place:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
text += self._('%(str1)s, %(str2)s'
|
||||
) % {'str1' : date, 'str2' : place}
|
||||
elif date:
|
||||
@ -501,7 +501,7 @@ class DetDescendantReport(Report):
|
||||
if text:
|
||||
text += ". "
|
||||
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
text = self._('%(str1)s: %(str2)s'
|
||||
) % {'str1' : self._(event_name),
|
||||
'str2' : text}
|
||||
@ -514,10 +514,10 @@ class DetDescendantReport(Report):
|
||||
attr_list.extend(event_ref.get_attribute_list())
|
||||
for attr in attr_list:
|
||||
if text:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
text += self._("; ")
|
||||
attr_name = attr.get_type().type2base()
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
text += self._("%(type)s: %(value)s%(endnotes)s"
|
||||
) % {'type' : self._(attr_name),
|
||||
'value' : attr.get_value(),
|
||||
@ -935,7 +935,7 @@ class DetDescendantReport(Report):
|
||||
|
||||
self.doc.write_text(self._('Address: '))
|
||||
if date:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
self.doc.write_text(self._('%s, ') % date)
|
||||
self.doc.write_text(text)
|
||||
self.doc.write_text_citation(self.endnotes(addr))
|
||||
@ -954,7 +954,7 @@ class DetDescendantReport(Report):
|
||||
for attr in attrs:
|
||||
self.doc.start_paragraph('DDR-MoreDetails')
|
||||
attr_name = attr.get_type().type2base()
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
text = self._("%(type)s: %(value)s%(endnotes)s"
|
||||
) % {'type' : self._(attr_name),
|
||||
'value' : attr.get_value(),
|
||||
|
@ -133,10 +133,10 @@ class FamilyGroup(Report):
|
||||
if self.include_attrs:
|
||||
for attr in event.get_attribute_list():
|
||||
if descr:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
descr += self._("; ")
|
||||
attr_type = self._get_type(attr.get_type())
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
descr += self._("%(str1)s: %(str2)s"
|
||||
) % {'str1' : self._(attr_type),
|
||||
'str2' : attr.get_value()}
|
||||
@ -302,7 +302,7 @@ class FamilyGroup(Report):
|
||||
self.doc.start_cell('FGR-ParentHead', 3)
|
||||
self.doc.start_paragraph('FGR-ParentName')
|
||||
mark = utils.get_person_mark(self.db, person)
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
self.doc.write_text(self._("%(str1)s: %(str2)s"
|
||||
) % {'str1' : title,
|
||||
'str2' : name},
|
||||
@ -406,7 +406,7 @@ class FamilyGroup(Report):
|
||||
header = self._("Marriage")
|
||||
if self.gramps_ids:
|
||||
header += " (%s)" % family.get_gramps_id()
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
self.doc.write_text(self._("%s:") % header)
|
||||
self.doc.end_paragraph()
|
||||
self.doc.end_cell()
|
||||
|
@ -199,7 +199,7 @@ class IndivCompleteReport(Report):
|
||||
column_1 = self._(self._get_type(event.get_type()))
|
||||
if role not in (EventRoleType.PRIMARY, EventRoleType.FAMILY):
|
||||
column_1 = column_1 + ' (' + self._(role.xml_str()) + ')'
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
# make sure it's translated, so it can be used below, in "combine"
|
||||
ignore = _('%(str1)s, %(str2)s') % {'str1' : '', 'str2' : ''}
|
||||
column_2 = self.combine('%(str1)s, %(str2)s', '%s',
|
||||
@ -207,7 +207,7 @@ class IndivCompleteReport(Report):
|
||||
else:
|
||||
# Groups with a single type (remove event type from first column)
|
||||
column_1 = date
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
# make sure it's translated, so it can be used below, in "combine"
|
||||
ignore = _('%(str1)s, %(str2)s') % {'str1' : '', 'str2' : ''}
|
||||
column_2 = self.combine('%(str1)s, %(str2)s', '%s',
|
||||
@ -247,7 +247,7 @@ class IndivCompleteReport(Report):
|
||||
self.doc.start_row()
|
||||
self.write_cell(label)
|
||||
if parent_name:
|
||||
# for example (a stepfather): John Smith, relationship: Step
|
||||
# Translators: e.g. (a stepfather): John Smith, relationship: Step
|
||||
text = self._('%(parent-name)s, relationship: %(rel-type)s'
|
||||
) % {'parent-name' : parent_name,
|
||||
'rel-type' : self._(rel_type)}
|
||||
@ -919,7 +919,7 @@ class IndivCompleteReport(Report):
|
||||
p_style = 'IDS-PersonTable' # this is tested for, also
|
||||
else:
|
||||
self._user.warn(_("Could not add photo to page"),
|
||||
# translators: for French, else ignore
|
||||
# Translators: for French, else ignore
|
||||
_("%(str1)s: %(str2)s"
|
||||
) % {'str1' : image_filename,
|
||||
'str2' : _('File does not exist')})
|
||||
@ -927,7 +927,7 @@ class IndivCompleteReport(Report):
|
||||
self.doc.start_table('person', p_style)
|
||||
self.doc.start_row()
|
||||
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
ignore = self._("%s:")
|
||||
self.doc.start_cell('IDS-NormalCell')
|
||||
self.write_paragraph(self._("%s:") % self._("Name"))
|
||||
@ -959,7 +959,7 @@ class IndivCompleteReport(Report):
|
||||
else:
|
||||
for attr in attr_list:
|
||||
attr_type = attr.get_type().type2base()
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
text = self._("%(str1)s: %(str2)s"
|
||||
) % {'str1' : self._(attr_type),
|
||||
'str2' : attr.get_value()}
|
||||
@ -1020,7 +1020,7 @@ class IndivCompleteReport(Report):
|
||||
if not txt:
|
||||
return prior
|
||||
if prior:
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
txt = self._('%(str1)s, %(str2)s') % {'str1':prior, 'str2':txt}
|
||||
return txt
|
||||
|
||||
@ -1030,7 +1030,7 @@ class IndivCompleteReport(Report):
|
||||
return
|
||||
for attr in attr_list:
|
||||
attr_type = attr.get_type().type2base()
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
text = self._("%(str1)s: %(str2)s"
|
||||
) % {'str1' : self._(attr_type),
|
||||
'str2' : attr.get_value()}
|
||||
|
@ -120,7 +120,7 @@ class NumberOfAncestorsReport(Report):
|
||||
|
||||
# TC # English return something like:
|
||||
# Generation 3 has 2 individuals. (50.00%)
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
text = ngettext(
|
||||
"Generation {number} has {count} individual. {percent}",
|
||||
"Generation {number} has {count} individuals. {percent}",
|
||||
|
@ -181,7 +181,7 @@ class PlaceReport(Report):
|
||||
|
||||
place_details = [self._("Gramps ID: %s ") % place.get_gramps_id()]
|
||||
for level in get_location_list(self._db, place):
|
||||
# translators: needed for French, ignore otherwise
|
||||
# Translators: needed for French, ignore otherwise
|
||||
place_details.append(self._("%(str1)s: %(str2)s"
|
||||
) % {'str1': self._(level[1].xml_str()),
|
||||
'str2': level[0]})
|
||||
@ -191,7 +191,7 @@ class PlaceReport(Report):
|
||||
if len(all_names) > 1 or __debug__:
|
||||
for place_name in all_names:
|
||||
if place_names != '':
|
||||
# translators: needed for Arabic, ignore otherwise
|
||||
# Translators: needed for Arabic, ignore otherwise
|
||||
place_names += self._(", ")
|
||||
place_names += '%s' % place_name.get_value()
|
||||
if place_name.get_language() != '' or __debug__:
|
||||
|
@ -133,7 +133,7 @@ class ChangeTypes(tool.BatchTool, ManagedWindow):
|
||||
if modified == 0:
|
||||
msg = _("No event record was modified.")
|
||||
else:
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
msg = ngettext("{number_of} event record was modified.",
|
||||
"{number_of} event records were modified.", modified
|
||||
).format(number_of=modified)
|
||||
|
@ -2458,7 +2458,7 @@ class CheckIntegrity:
|
||||
|
||||
if blink > 0:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} broken child/family link was fixed\n",
|
||||
"{quantity} broken child/family links were fixed\n",
|
||||
blink).format(quantity=blink)
|
||||
@ -2484,7 +2484,7 @@ class CheckIntegrity:
|
||||
|
||||
if plink > 0:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} broken spouse/family link was fixed\n",
|
||||
"{quantity} broken spouse/family links were fixed\n",
|
||||
plink).format(quantity=plink)
|
||||
@ -2510,7 +2510,7 @@ class CheckIntegrity:
|
||||
|
||||
if slink > 0:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} duplicate "
|
||||
"spouse/family link was found\n",
|
||||
"{quantity} duplicate "
|
||||
@ -2538,7 +2538,7 @@ class CheckIntegrity:
|
||||
|
||||
if efam:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} family "
|
||||
"with no parents or children found, removed.\n",
|
||||
"{quantity} families "
|
||||
@ -2550,7 +2550,7 @@ class CheckIntegrity:
|
||||
|
||||
if rel:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} corrupted family relationship fixed\n",
|
||||
"{quantity} corrupted family relationships fixed\n",
|
||||
rel).format(quantity=rel)
|
||||
@ -2558,7 +2558,7 @@ class CheckIntegrity:
|
||||
|
||||
if self.place_errors:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} place alternate name fixed\n",
|
||||
"{quantity} place alternate names fixed\n",
|
||||
self.place_errors).format(quantity=self.place_errors)
|
||||
@ -2566,7 +2566,7 @@ class CheckIntegrity:
|
||||
|
||||
if person_references:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext(
|
||||
"{quantity} person was referenced but not found\n",
|
||||
"{quantity} persons were referenced, but not found\n",
|
||||
@ -2575,7 +2575,7 @@ class CheckIntegrity:
|
||||
|
||||
if family_references:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} family was "
|
||||
"referenced but not found\n",
|
||||
"{quantity} families were "
|
||||
@ -2585,7 +2585,7 @@ class CheckIntegrity:
|
||||
|
||||
if invalid_dates:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} date was corrected\n",
|
||||
"{quantity} dates were corrected\n",
|
||||
invalid_dates).format(quantity=invalid_dates)
|
||||
@ -2593,7 +2593,7 @@ class CheckIntegrity:
|
||||
|
||||
if repo_references:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext(
|
||||
"{quantity} repository was "
|
||||
"referenced but not found\n",
|
||||
@ -2604,7 +2604,7 @@ class CheckIntegrity:
|
||||
|
||||
if photos:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} media object was "
|
||||
"referenced but not found\n",
|
||||
"{quantity} media objects were "
|
||||
@ -2614,7 +2614,7 @@ class CheckIntegrity:
|
||||
|
||||
if bad_photos:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext(
|
||||
"Reference to {quantity} missing media object was kept\n",
|
||||
"References to {quantity} missing media objects were kept\n",
|
||||
@ -2623,7 +2623,7 @@ class CheckIntegrity:
|
||||
|
||||
if replaced_photos:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} missing media object was replaced\n",
|
||||
"{quantity} missing media objects were replaced\n",
|
||||
replaced_photos).format(quantity=replaced_photos)
|
||||
@ -2631,7 +2631,7 @@ class CheckIntegrity:
|
||||
|
||||
if removed_photos:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} missing media object was removed\n",
|
||||
"{quantity} missing media objects were removed\n",
|
||||
removed_photos).format(quantity=removed_photos)
|
||||
@ -2639,7 +2639,7 @@ class CheckIntegrity:
|
||||
|
||||
if event_invalid:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} event was referenced but not found\n",
|
||||
"{quantity} events were referenced, but not found\n",
|
||||
event_invalid).format(quantity=event_invalid)
|
||||
@ -2647,7 +2647,7 @@ class CheckIntegrity:
|
||||
|
||||
if birth_invalid:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} invalid birth event name was fixed\n",
|
||||
"{quantity} invalid birth event names were fixed\n",
|
||||
birth_invalid).format(quantity=birth_invalid)
|
||||
@ -2655,7 +2655,7 @@ class CheckIntegrity:
|
||||
|
||||
if death_invalid:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} invalid death event name was fixed\n",
|
||||
"{quantity} invalid death event names were fixed\n",
|
||||
death_invalid).format(quantity=death_invalid)
|
||||
@ -2663,7 +2663,7 @@ class CheckIntegrity:
|
||||
|
||||
if place_references:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} place was referenced but not found\n",
|
||||
"{quantity} places were referenced, but not found\n",
|
||||
place_references).format(quantity=place_references)
|
||||
@ -2671,7 +2671,7 @@ class CheckIntegrity:
|
||||
|
||||
if citation_references:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext(
|
||||
"{quantity} citation was referenced but not found\n",
|
||||
"{quantity} citations were referenced, but not found\n",
|
||||
@ -2681,7 +2681,7 @@ class CheckIntegrity:
|
||||
|
||||
if source_references:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext(
|
||||
"{quantity} source was referenced but not found\n",
|
||||
"{quantity} sources were referenced, but not found\n",
|
||||
@ -2690,7 +2690,7 @@ class CheckIntegrity:
|
||||
|
||||
if media_references:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext(
|
||||
"{quantity} media object was referenced but not found\n",
|
||||
"{quantity} media objects were referenced,"
|
||||
@ -2700,7 +2700,7 @@ class CheckIntegrity:
|
||||
|
||||
if note_references:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} note object was "
|
||||
"referenced but not found\n",
|
||||
"{quantity} note objects were "
|
||||
@ -2710,7 +2710,7 @@ class CheckIntegrity:
|
||||
|
||||
if tag_references:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} tag object was "
|
||||
"referenced but not found\n",
|
||||
"{quantity} tag objects were "
|
||||
@ -2720,7 +2720,7 @@ class CheckIntegrity:
|
||||
|
||||
if tag_references:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} tag object was "
|
||||
"referenced but not found\n",
|
||||
"{quantity} tag objects were "
|
||||
@ -2730,7 +2730,7 @@ class CheckIntegrity:
|
||||
|
||||
if name_format:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} invalid name format "
|
||||
"reference was removed\n",
|
||||
"{quantity} invalid name format "
|
||||
@ -2740,7 +2740,7 @@ class CheckIntegrity:
|
||||
|
||||
if replaced_sourcerefs:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext(
|
||||
"{quantity} invalid source citation was fixed\n",
|
||||
"{quantity} invalid source citations were fixed\n",
|
||||
@ -2750,7 +2750,7 @@ class CheckIntegrity:
|
||||
|
||||
if dup_gramps_ids > 0:
|
||||
self.text.write(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{quantity} Duplicated Gramps ID fixed\n",
|
||||
"{quantity} Duplicated Gramps IDs fixed\n",
|
||||
dup_gramps_ids).format(quantity=dup_gramps_ids)
|
||||
|
@ -116,7 +116,7 @@ class EventNames(tool.BatchTool):
|
||||
else:
|
||||
parent_window = None
|
||||
if self.change == True:
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
message = ngettext("{quantity} event description has been added",
|
||||
"{quantity} event descriptions have been added",
|
||||
counter).format(quantity=counter)
|
||||
|
@ -231,7 +231,7 @@ class MergeCitations(tool.BatchTool,ManagedWindow):
|
||||
db.request_rebuild()
|
||||
self.progress.close()
|
||||
OkDialog(_("Number of merges done"),
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("{number_of} citation merged",
|
||||
"{number_of} citations merged", num_merges
|
||||
).format(number_of=num_merges),
|
||||
|
@ -257,7 +257,7 @@ class NotRelated(tool.ActivePersonTool, ManagedWindow):
|
||||
progress = ProgressMeter(self.title, _('Starting'),
|
||||
parent=self.window)
|
||||
progress.set_pass(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
#TRANS: no singular form needed, as rows is always > 1
|
||||
ngettext("Setting tag for {number_of} person",
|
||||
"Setting tag for {number_of} people",
|
||||
@ -300,7 +300,7 @@ class NotRelated(tool.ActivePersonTool, ManagedWindow):
|
||||
def findRelatedPeople(self):
|
||||
|
||||
self.progress.set_pass(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
#TRANS: No singular form is needed.
|
||||
ngettext("Finding relationships between {number_of} person",
|
||||
"Finding relationships between {number_of} people",
|
||||
@ -381,7 +381,7 @@ class NotRelated(tool.ActivePersonTool, ManagedWindow):
|
||||
# we have at least 1 "unrelated" person to find
|
||||
|
||||
self.progress.set_pass(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("Looking for {number_of} person",
|
||||
"Looking for {number_of} people",
|
||||
self.numberOfUnrelatedPeople
|
||||
@ -409,7 +409,7 @@ class NotRelated(tool.ActivePersonTool, ManagedWindow):
|
||||
def populateModel(self):
|
||||
|
||||
self.progress.set_pass(
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext("Looking up the name of {number_of} person",
|
||||
"Looking up the names of {number_of} people",
|
||||
self.numberOfUnrelatedPeople
|
||||
|
@ -314,7 +314,7 @@ class Verify(tool.Tool, ManagedWindow, UpdateCallback):
|
||||
severity_str = 'W'
|
||||
elif severity == Rule.ERROR:
|
||||
severity_str = 'E'
|
||||
# translators: needed for French+Arabic, ignore otherwise
|
||||
# Translators: needed for French+Arabic, ignore otherwise
|
||||
print(_("%(severity)s: %(msg)s, %(type)s: %(gid)s, %(name)s"
|
||||
) % {'severity' : severity_str, 'msg' : msg, 'type' : the_type,
|
||||
'gid' : gramps_id, 'name' : name})
|
||||
|
@ -1040,7 +1040,7 @@ class RelationshipView(NavigationView):
|
||||
else:
|
||||
count = 0
|
||||
if count > 1 :
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
childmsg = ngettext(" ({number_of} sibling)",
|
||||
" ({number_of} siblings)", count
|
||||
).format(number_of=count)
|
||||
@ -1095,7 +1095,7 @@ class RelationshipView(NavigationView):
|
||||
else:
|
||||
count = 0
|
||||
if count > 1 :
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
childmsg = ngettext(" ({number_of} sibling)",
|
||||
" ({number_of} siblings)", count
|
||||
).format(number_of=count)
|
||||
@ -1560,7 +1560,7 @@ class RelationshipView(NavigationView):
|
||||
else:
|
||||
count = 0
|
||||
if count >= 1 :
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
childmsg = ngettext(" ({number_of} child)",
|
||||
" ({number_of} children)", count
|
||||
).format(number_of=count)
|
||||
@ -1606,7 +1606,7 @@ class RelationshipView(NavigationView):
|
||||
else:
|
||||
count = 0
|
||||
if count >= 1 :
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
childmsg = ngettext(" ({number_of} child)",
|
||||
" ({number_of} children)", count
|
||||
).format(number_of=count)
|
||||
|
@ -197,7 +197,7 @@ class BasePage:
|
||||
else:
|
||||
self.rlocale = report.set_locale(report.options['trans'])
|
||||
self._ = self.rlocale.translation.sgettext
|
||||
self.colon = self._(':') # translators: needed for French, else ignore
|
||||
self.colon = self._(':') # Translators: needed for French, else ignore
|
||||
|
||||
if report.options['securesite']:
|
||||
self.secure_mode = HTTPS
|
||||
|
@ -1359,7 +1359,7 @@ def get_day_list(event_date, holiday_list, bday_anniv_list, rlocale=glocale):
|
||||
age = ", <font size='+1' ><b>%s</b></font> <em>%s (%s)" % (
|
||||
death_symbol, mess, age_at_death)
|
||||
else:
|
||||
# TRANSLATORS: expands to smth like "12 years old",
|
||||
# Translators: expands to smth like "12 years old",
|
||||
# where "12 years" is already localized to your language
|
||||
age = ', <em>'
|
||||
date_y = date.get_year()
|
||||
@ -1397,7 +1397,7 @@ def get_day_list(event_date, holiday_list, bday_anniv_list, rlocale=glocale):
|
||||
txt_str += "</em>"
|
||||
else:
|
||||
age = '<em>%s' % nyears
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext = rlocale.translation.ngettext
|
||||
txt_str = ngettext("{couple}, {years} year anniversary",
|
||||
"{couple}, {years} year anniversary",
|
||||
|
@ -2177,7 +2177,7 @@ def get_day_list(event_date, holiday_list, bday_anniv_list, rlocale=glocale):
|
||||
age = ", <font size='+1' ><b>%s</b></font> <em>%s (%s)" % (
|
||||
death_symbol, mess, age_at_death)
|
||||
else:
|
||||
# TRANSLATORS: expands to smth like "12 years old",
|
||||
# Translators: expands to smth like "12 years old",
|
||||
# where "12 years" is already localized to your language
|
||||
age = ', <em>'
|
||||
date_y = date.get_year()
|
||||
@ -2215,7 +2215,7 @@ def get_day_list(event_date, holiday_list, bday_anniv_list, rlocale=glocale):
|
||||
txt_str += "</em>"
|
||||
else:
|
||||
age = '<em>%s' % nyears
|
||||
# translators: leave all/any {...} untranslated
|
||||
# Translators: leave all/any {...} untranslated
|
||||
ngettext = rlocale.translation.ngettext
|
||||
txt_str = ngettext("{couple}, {years} year anniversary",
|
||||
"{couple}, {years} year anniversary",
|
||||
|
@ -57,31 +57,31 @@ def load_on_reg(dbstate, uistate, plugin):
|
||||
# "default" is used as default
|
||||
|
||||
# default style sheet in the options
|
||||
# Basic Ash style sheet
|
||||
# Translators: Basic Ash style sheet
|
||||
["Basic-Ash", 1, _("Basic-Ash"),
|
||||
path_css('Web_Basic-Ash.css'), None, [], []],
|
||||
|
||||
# Basic Blue style sheet with navigation menus
|
||||
# Translators: Basic Blue style sheet with navigation menus
|
||||
["Basic-Blue", 1, _("Basic-Blue"),
|
||||
path_css('Web_Basic-Blue.css'), None, [], []],
|
||||
|
||||
# Basic Cypress style sheet
|
||||
# Translators: Basic Cypress style sheet
|
||||
["Basic-Cypress", 1, _("Basic-Cypress"),
|
||||
path_css('Web_Basic-Cypress.css'), None, [], []],
|
||||
|
||||
# basic Lilac style sheet
|
||||
# Translators: Basic Lilac style sheet
|
||||
["Basic-Lilac", 1, _("Basic-Lilac"),
|
||||
path_css('Web_Basic-Lilac.css'), None, [], []],
|
||||
|
||||
# basic Peach style sheet
|
||||
# Translators: Basic Peach style sheet
|
||||
["Basic-Peach", 1, _("Basic-Peach"),
|
||||
path_css('Web_Basic-Peach.css'), None, [], []],
|
||||
|
||||
# basic Spruce style sheet
|
||||
# Translators: Basic Spruce style sheet
|
||||
["Basic-Spruce", 1, _("Basic-Spruce"),
|
||||
path_css('Web_Basic-Spruce.css'), None, [], []],
|
||||
|
||||
# Mainz style sheet with its images
|
||||
# Translators: Mainz style sheet with its images
|
||||
["Mainz", 1, _("Mainz"),
|
||||
path_css('Web_Mainz.css'), None,
|
||||
[path_img("Web_Mainz_Bkgd.png"),
|
||||
@ -89,11 +89,11 @@ def load_on_reg(dbstate, uistate, plugin):
|
||||
path_img("Web_Mainz_Mid.png"),
|
||||
path_img("Web_Mainz_MidLight.png")], []],
|
||||
|
||||
# Nebraska style sheet
|
||||
# Translators: Nebraska style sheet
|
||||
["Nebraska", 1, _("Nebraska"),
|
||||
path_css('Web_Nebraska.css'), None, [], []],
|
||||
|
||||
# Visually Impaired style sheet with its navigation menus
|
||||
# Translators: Visually Impaired style sheet with its navigation menus
|
||||
["Visually Impaired", 1, _("Visually Impaired"),
|
||||
path_css('Web_Visually.css'), "narrative-menus.css", [], []],
|
||||
|
||||
|
980
po/gramps.pot
980
po/gramps.pot
File diff suppressed because it is too large
Load Diff
@ -423,8 +423,9 @@ def retrieve():
|
||||
listing('python.txt', ['.py', '.py.in'])
|
||||
|
||||
# additional keywords must always be kept in sync with those in genpot.sh
|
||||
os.system('''%(xgettext)s -F -c -j --directory=./ -d gramps '''
|
||||
'''-L Python -o gramps.pot --files-from=python.txt '''
|
||||
os.system('''%(xgettext)s -F --add-comments=Translators -j '''
|
||||
'''--directory=./ -d gramps -L Python '''
|
||||
'''-o gramps.pot --files-from=python.txt '''
|
||||
'''--debug --keyword=_ --keyword=ngettext '''
|
||||
'''--keyword=_T_ --keyword=trans_text:1,2c '''
|
||||
'''--keyword=_:1,2c --keyword=_T_:1,2c '''
|
||||
@ -437,8 +438,8 @@ def retrieve():
|
||||
# C format header (.h extension)
|
||||
for h in headers():
|
||||
print ('xgettext for %s' % h)
|
||||
os.system('''%(xgettext)s -F --add-comments -j -o gramps.pot '''
|
||||
'''--keyword=N_ --from-code=UTF-8 %(head)s'''
|
||||
os.system('''%(xgettext)s -F --add-comments=Translators -j '''
|
||||
'''-o gramps.pot --keyword=N_ --from-code=UTF-8 %(head)s'''
|
||||
% {'xgettext': xgettextCmd, 'head': h}
|
||||
)
|
||||
clean()
|
||||
|
Loading…
Reference in New Issue
Block a user