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