diff --git a/gramps/gen/config.py b/gramps/gen/config.py index eb59e6bb0..9bc51136e 100644 --- a/gramps/gen/config.py +++ b/gramps/gen/config.py @@ -45,6 +45,10 @@ from .utils.configmanager import ConfigManager from .const import GRAMPS_LOCALE as glocale _ = glocale.translation.gettext +# _T_ is a gramps-defined keyword -- see po/update_po.py and po/genpot.sh +def _T_(value): # enable deferred translations (see Python docs 22.1.3.4) + return value + #--------------------------------------------------------------- # # Constants @@ -311,9 +315,9 @@ register('preferences.oprefix', 'O%04d') register('preferences.paper-metric', 0) register('preferences.paper-preference', 'Letter') register('preferences.pprefix', 'P%04d') -register('preferences.private-given-text', "[%s]" % _("Living")) +register('preferences.private-given-text', "%s" % _T_("[Living]")) register('preferences.private-record-text', "[%s]" % _("Private Record")) -register('preferences.private-surname-text', "[%s]" % _("Living")) +register('preferences.private-surname-text', "%s" % _T_("[Living]")) register('preferences.rprefix', 'R%04d') register('preferences.sprefix', 'S%04d') register('preferences.use-last-view', False) diff --git a/gramps/gen/plug/report/stdoptions.py b/gramps/gen/plug/report/stdoptions.py index d97977ff1..8661959c6 100644 --- a/gramps/gen/plug/report/stdoptions.py +++ b/gramps/gen/plug/report/stdoptions.py @@ -179,13 +179,20 @@ def add_living_people_option(menu, category, menu.add_option(category, "years_past_death", years_past_death) living_people_changed() -def run_living_people_option(report, menu): +def run_living_people_option(report, menu, llocale=glocale): """ Run the option for deciding how the information in the database for living people shall be handled by the report + + If llocale is passed in (a :class:`.GrampsLocale`), then (insofar as + possible) the translated values will be returned instead. + + :param llocale: allow deferred translation of "[Living]" + :type llocale: a :class:`.GrampsLocale` instance """ living_people = menu.get_option_by_name('living_people').get_value() years_past_death = menu.get_option_by_name('years_past_death').get_value() if living_people != LivingProxyDb.MODE_INCLUDE_ALL: report.database = LivingProxyDb(report.database, living_people, - years_after_death=years_past_death) + years_after_death=years_past_death, + llocale=llocale) diff --git a/gramps/gen/proxy/living.py b/gramps/gen/proxy/living.py index 09a4fb7f2..f403450cf 100644 --- a/gramps/gen/proxy/living.py +++ b/gramps/gen/proxy/living.py @@ -34,6 +34,7 @@ from ..lib import (Date, Person, Name, Surname, NameOriginType, Family, Source, from ..utils.alive import probably_alive from ..config import config from gramps.gen.db.base import sort_objects +from gramps.gen.const import GRAMPS_LOCALE as glocale #------------------------------------------------------------------------- # @@ -51,7 +52,8 @@ class LivingProxyDb(ProxyDbBase): MODE_REPLACE_COMPLETE_NAME = 3 MODE_INCLUDE_ALL = 99 # usually this will be only tested for, not invoked - def __init__(self, dbase, mode, current_year=None, years_after_death=0): + def __init__(self, dbase, mode, + current_year=None, years_after_death=0, llocale=glocale): """ Create a new LivingProxyDb instance. @@ -77,6 +79,10 @@ class LivingProxyDb(ProxyDbBase): :param years_after_death: The number of years after a person's death to still consider them living. :type years_after_death: int + If llocale is passed in (a :class:`.GrampsLocale`), then (insofar as + possible) the translated values will be returned instead. + :param llocale: allow deferred translation of "[Living]" + :type llocale: a :class:`.GrampsLocale` instance """ ProxyDbBase.__init__(self, dbase) self.mode = mode @@ -86,6 +92,10 @@ class LivingProxyDb(ProxyDbBase): else: self.current_date = None self.years_after_death = years_after_death + self._ = llocale.translation.gettext + self._p_f_n = self._(config.get('preferences.private-given-text')) + self._p_s_n = self._(config.get('preferences.private-surname-text')) + self.__tables = { 'Person': { @@ -400,8 +410,7 @@ class LivingProxyDb(ProxyDbBase): new_name.set_type(old_name.get_type()) if (self.mode == self.MODE_INCLUDE_LAST_NAME_ONLY or self.mode == self.MODE_REPLACE_COMPLETE_NAME): - new_name.set_first_name( - config.get('preferences.private-given-text')) + new_name.set_first_name(self._p_f_n) new_name.set_title("") else: # self.mode == self.MODE_INCLUDE_FULL_NAME_ONLY new_name.set_first_name(old_name.get_first_name()) @@ -411,16 +420,14 @@ class LivingProxyDb(ProxyDbBase): surnlst = [] if self.mode == self.MODE_REPLACE_COMPLETE_NAME: surname = Surname(source=old_name.get_primary_surname()) - surname.set_surname( - config.get('preferences.private-surname-text')) + surname.set_surname(self._p_s_n) surnlst.append(surname) else: for surn in old_name.get_surname_list(): surname = Surname(source=surn) if int(surname.origintype) in [NameOriginType.PATRONYMIC, NameOriginType.MATRONYMIC]: - surname.set_surname( - config.get('preferences.private-surname-text')) + surname.set_surname(self._p_s_n) surnlst.append(surname) new_name.set_surname_list(surnlst) diff --git a/gramps/gui/configure.py b/gramps/gui/configure.py index c7748e515..9e9eac592 100644 --- a/gramps/gui/configure.py +++ b/gramps/gui/configure.py @@ -341,7 +341,7 @@ class ConfigureDialog(ManagedWindow): grid.attach(hbox, 2, index, 1, 1) def add_entry(self, grid, label, index, constant, callback=None, - config=None, col_attach=0): + config=None, col_attach=0, localized_config=True): if not config: config = self.__config if not callback: @@ -349,7 +349,10 @@ class ConfigureDialog(ManagedWindow): if label: lwidget = BasicLabel("%s: " % label) entry = Gtk.Entry() - entry.set_text(config.get(constant)) + if localized_config: + entry.set_text(config.get(constant)) + else: # it needs localizing + entry.set_text(_(config.get(constant))) entry.connect('changed', callback, constant) entry.set_hexpand(True) if label: @@ -1155,10 +1158,12 @@ class GrampsPreferences(ConfigureDialog): 'preferences.no-record-text') row += 1 self.add_entry(grid, _('Private surname'), row, - 'preferences.private-surname-text') + 'preferences.private-surname-text', + localized_config=False) row += 1 self.add_entry(grid, _('Private given name'), row, - 'preferences.private-given-text') + 'preferences.private-given-text', + localized_config=False) row += 1 self.add_entry(grid, _('Private record'), row, 'preferences.private-record-text') diff --git a/gramps/plugins/drawreport/descendtree.py b/gramps/plugins/drawreport/descendtree.py index ef9ab38ee..64c9ed930 100644 --- a/gramps/plugins/drawreport/descendtree.py +++ b/gramps/plugins/drawreport/descendtree.py @@ -1282,11 +1282,10 @@ class DescendTree(Report): self.options = options - stdoptions.run_private_data_option(self, options.menu) - stdoptions.run_living_people_option(self, options.menu) - lang = options.menu.get_option_by_name('trans').get_value() self._locale = self.set_locale(lang) + stdoptions.run_private_data_option(self, options.menu) + stdoptions.run_living_people_option(self, options.menu, self._locale) stdoptions.run_name_format_option(self, options.menu) self._nd = self._name_display diff --git a/gramps/plugins/drawreport/timeline.py b/gramps/plugins/drawreport/timeline.py index 3613ce716..2b4335f00 100644 --- a/gramps/plugins/drawreport/timeline.py +++ b/gramps/plugins/drawreport/timeline.py @@ -101,15 +101,15 @@ class TimeLine(Report): self._user = user menu = options.menu + lang = options.menu.get_option_by_name('trans').get_value() + self._locale = self.set_locale(lang) + self._ = self._locale.translation.sgettext + stdoptions.run_private_data_option(self, menu) - stdoptions.run_living_people_option(self, menu) + stdoptions.run_living_people_option(self, menu, self._locale) self.filter = menu.get_option_by_name('filter').get_filter() - self._lang = options.menu.get_option_by_name('trans').get_value() - self._locale = self.set_locale(self._lang) - self._ = self._locale.translation.sgettext - stdoptions.run_name_format_option(self, menu) sort_func_num = menu.get_option_by_name('sortby').get_value() diff --git a/gramps/plugins/textreport/descendreport.py b/gramps/plugins/textreport/descendreport.py index 40cb0a2d0..c358fed46 100644 --- a/gramps/plugins/textreport/descendreport.py +++ b/gramps/plugins/textreport/descendreport.py @@ -336,8 +336,11 @@ class DescendantReport(Report): menu = options.menu + lang = menu.get_option_by_name('trans').get_value() + self._locale = self.set_locale(lang) + stdoptions.run_private_data_option(self, menu) - stdoptions.run_living_people_option(self, menu) + stdoptions.run_living_people_option(self, menu, self._locale) self.max_generations = menu.get_option_by_name('gen').get_value() pid = menu.get_option_by_name('pid').get_value() @@ -347,9 +350,6 @@ class DescendantReport(Report): sort = Sort(self.database) - lang = menu.get_option_by_name('trans').get_value() - self._locale = self.set_locale(lang) - #Initialize the Printinfo class self._showdups = menu.get_option_by_name('dups').get_value() numbering = menu.get_option_by_name('numbering').get_value() diff --git a/gramps/plugins/textreport/detdescendantreport.py b/gramps/plugins/textreport/detdescendantreport.py index 3de5222cb..b10650321 100644 --- a/gramps/plugins/textreport/detdescendantreport.py +++ b/gramps/plugins/textreport/detdescendantreport.py @@ -132,8 +132,10 @@ class DetDescendantReport(Report): get_option_by_name = menu.get_option_by_name get_value = lambda name: get_option_by_name(name).get_value() + self._locale = self.set_locale(get_value('trans')) + stdoptions.run_private_data_option(self, menu) - stdoptions.run_living_people_option(self, menu) + stdoptions.run_living_people_option(self, menu, self._locale) self.db = self.database self.max_generations = get_value('gen') @@ -183,8 +185,6 @@ class DetDescendantReport(Report): else: empty_place = "" - self._locale = self.set_locale(get_value('trans')) - stdoptions.run_name_format_option(self, menu) self.__narrator = Narrator(self.db, self.verbose, diff --git a/gramps/plugins/textreport/familygroup.py b/gramps/plugins/textreport/familygroup.py index bba2b074f..a88ed6a82 100644 --- a/gramps/plugins/textreport/familygroup.py +++ b/gramps/plugins/textreport/familygroup.py @@ -83,8 +83,12 @@ class FamilyGroup(Report): self._user = user menu = options.menu + lang = menu.get_option_by_name('trans').get_value() + self._locale = self.set_locale(lang) + self._ = self._locale.translation.sgettext # needed for English + stdoptions.run_private_data_option(self, menu) - stdoptions.run_living_people_option(self, menu) + stdoptions.run_living_people_option(self, menu, self._locale) self.db = self.database self.filter = menu.get_option_by_name('filter').get_filter() @@ -105,9 +109,6 @@ class FamilyGroup(Report): self.incChiMar = get_value('incChiMar') self.includeAttrs = get_value('incattrs') - self._locale = self.set_locale(get_value('trans')) - self._ = self._locale.translation.sgettext # needed for English - stdoptions.run_name_format_option(self, menu) def dump_parent_event(self, name, event): diff --git a/gramps/plugins/textreport/indivcomplete.py b/gramps/plugins/textreport/indivcomplete.py index 5a293f469..dbaf75fdc 100644 --- a/gramps/plugins/textreport/indivcomplete.py +++ b/gramps/plugins/textreport/indivcomplete.py @@ -118,8 +118,11 @@ class IndivCompleteReport(Report): self._user = user menu = options.menu + lang = menu.get_option_by_name('trans').get_value() + self._locale = self.set_locale(lang) + stdoptions.run_private_data_option(self, menu) - stdoptions.run_living_people_option(self, menu) + stdoptions.run_living_people_option(self, menu, self._locale) self._db = self.database self.use_pagebreak = menu.get_option_by_name('pageben').get_value() @@ -137,9 +140,6 @@ class IndivCompleteReport(Report): self.section_list = menu.get_option_by_name('sections').get_selected() - lang = menu.get_option_by_name('trans').get_value() - self._locale = self.set_locale(lang) - stdoptions.run_name_format_option(self, menu) def write_fact(self, event_ref, event, show_type=True): diff --git a/po/ca.po b/po/ca.po index 85a6cb447..e48d5a990 100644 --- a/po/ca.po +++ b/po/ca.po @@ -1782,6 +1782,9 @@ msgid "Missing Surname" msgstr "Falta el Cognom" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Viu]" + msgid "Living" msgstr "Viu" diff --git a/po/cs.po b/po/cs.po index a5c6d012a..3c026c5dc 100644 --- a/po/cs.po +++ b/po/cs.po @@ -1810,6 +1810,9 @@ msgid "Missing Surname" msgstr "Chybí příjmení" #: ../gramps/gen/config.py:314 ../gramps/gen/config.py:316 +msgid "[Living]" +msgstr "[Žijící]" + msgid "Living" msgstr "Žijící" diff --git a/po/da.po b/po/da.po index 90da2dab6..a6c3d59fd 100644 --- a/po/da.po +++ b/po/da.po @@ -1797,6 +1797,9 @@ msgid "Missing Surname" msgstr "Manglende efternavn" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Nulevende]" + msgid "Living" msgstr "Nulevende" diff --git a/po/de.po b/po/de.po index a6837f5be..84944d44d 100644 --- a/po/de.po +++ b/po/de.po @@ -1835,6 +1835,9 @@ msgid "Missing Surname" msgstr "Fehlender Nachname" #: ../gramps/gen/config.py:314 ../gramps/gen/config.py:316 +msgid "[Living]" +msgstr "[Lebt]" + msgid "Living" msgstr "Lebt" diff --git a/po/eo.po b/po/eo.po index dbffd3a8f..fa89d709a 100644 --- a/po/eo.po +++ b/po/eo.po @@ -1752,6 +1752,9 @@ msgid "Missing Surname" msgstr "Mankas Familinomo" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Vivanta]" + msgid "Living" msgstr "Vivanta" diff --git a/po/es.po b/po/es.po index 5fc68e15b..d88ffe754 100644 --- a/po/es.po +++ b/po/es.po @@ -1780,6 +1780,9 @@ msgid "Missing Surname" msgstr "Falta el apellido" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Con vida]" + msgid "Living" msgstr "Con vida" diff --git a/po/fi.po b/po/fi.po index ce088a9b7..da23cd2e7 100644 --- a/po/fi.po +++ b/po/fi.po @@ -1781,6 +1781,9 @@ msgid "Missing Surname" msgstr "Sukunimi puuttuu" #: ../gramps/gen/config.py:314 ../gramps/gen/config.py:316 +msgid "[Living]" +msgstr "[Elossa]" + msgid "Living" msgstr "Elossa" diff --git a/po/fr.po b/po/fr.po index 46fd518ed..854e14680 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1221,6 +1221,9 @@ msgstr "Nom de famille manquant" #: ../gramps/gen/config.py:310 #: ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Vivant]" + msgid "Living" msgstr "Vivant" diff --git a/po/hr.po b/po/hr.po index 43ccca809..8044f4ec3 100644 --- a/po/hr.po +++ b/po/hr.po @@ -1663,6 +1663,9 @@ msgid "Missing Surname" msgstr "Nedostajuće prezime" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Živuči]" + msgid "Living" msgstr "Živuči" diff --git a/po/hu.po b/po/hu.po index dcdeec630..51e5e67fa 100644 --- a/po/hu.po +++ b/po/hu.po @@ -1805,6 +1805,9 @@ msgid "Missing Surname" msgstr "Hiányzó vezetéknév" #: ../gramps/gen/config.py:314 ../gramps/gen/config.py:316 +msgid "[Living]" +msgstr "[Élő]" + msgid "Living" msgstr "Élő" diff --git a/po/is.po b/po/is.po index f935a5835..f32e28e18 100644 --- a/po/is.po +++ b/po/is.po @@ -1717,6 +1717,9 @@ msgid "Missing Surname" msgstr "Vantar kenninafn" #: ../gramps/gen/config.py:314 ../gramps/gen/config.py:316 +msgid "[Living]" +msgstr "[Lifandi]" + msgid "Living" msgstr "Lifandi" diff --git a/po/it.po b/po/it.po index ba452fe6e..1c325f82c 100644 --- a/po/it.po +++ b/po/it.po @@ -1769,6 +1769,9 @@ msgid "Missing Surname" msgstr "Cognome mancante" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[In vita]" + msgid "Living" msgstr "In vita" diff --git a/po/lt.po b/po/lt.po index b64409851..c3c143334 100644 --- a/po/lt.po +++ b/po/lt.po @@ -1751,6 +1751,9 @@ msgid "Missing Surname" msgstr "Trūksta pavardės" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Gyvena]" + msgid "Living" msgstr "Gyvena" diff --git a/po/nb.po b/po/nb.po index 6cbe6ca22..020d4c2dc 100644 --- a/po/nb.po +++ b/po/nb.po @@ -1746,6 +1746,9 @@ msgid "Missing Surname" msgstr "Mangler etternavn" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Levende]" + msgid "Living" msgstr "Levende" diff --git a/po/nl.po b/po/nl.po index 414670e0e..00109997f 100644 --- a/po/nl.po +++ b/po/nl.po @@ -1545,6 +1545,9 @@ msgid "Missing Surname" msgstr "Ontbrekende achternaam" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Levend]" + msgid "Living" msgstr "Levend" diff --git a/po/nn.po b/po/nn.po index 64273f91e..b9f0e5bae 100644 --- a/po/nn.po +++ b/po/nn.po @@ -1756,6 +1756,9 @@ msgid "Missing Surname" msgstr "Manglar etternamn" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Levande]" + msgid "Living" msgstr "Levande" diff --git a/po/pl.po b/po/pl.po index e85f10830..21f561244 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1780,6 +1780,9 @@ msgid "Missing Surname" msgstr "Brakujące nazwisko" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Żyjący]" + msgid "Living" msgstr "Żyjący" diff --git a/po/pt_BR.po b/po/pt_BR.po index 7d87b36cc..71577b85e 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -1800,6 +1800,9 @@ msgid "Missing Surname" msgstr "Sobrenome faltando" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Viva]" + msgid "Living" msgstr "Viva" diff --git a/po/pt_PT.po b/po/pt_PT.po index 7f57a143d..07b3c58a7 100644 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -1792,6 +1792,9 @@ msgid "Missing Surname" msgstr "Falta o apelido" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Vivo]" + msgid "Living" msgstr "Vivo" diff --git a/po/ru.po b/po/ru.po index 10b8a4519..ce72bebd2 100644 --- a/po/ru.po +++ b/po/ru.po @@ -1792,6 +1792,9 @@ msgid "Missing Surname" msgstr "Фамилия отсутствует" #: ../gramps/gen/config.py:314 ../gramps/gen/config.py:316 +msgid "[Living]" +msgstr "[Живой]" + msgid "Living" msgstr "Живой" diff --git a/po/sk.po b/po/sk.po index 4a1f8284d..af5b05b10 100644 --- a/po/sk.po +++ b/po/sk.po @@ -1679,6 +1679,9 @@ msgid "Missing Surname" msgstr "Priezvisko chýba" #: ../gramps/gen/config.py:311 ../gramps/gen/config.py:313 +msgid "[Living]" +msgstr "[Žijúci]" + msgid "Living" msgstr "Žijúci" diff --git a/po/sl.po b/po/sl.po index 3dd9d63c4..41e8b1ee9 100644 --- a/po/sl.po +++ b/po/sl.po @@ -1730,6 +1730,9 @@ msgid "Missing Surname" msgstr "Brez priimka" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[Še živi]" + msgid "Living" msgstr "Še živi" diff --git a/po/sr.po b/po/sr.po index 803c3ed87..f3a962f1a 100644 --- a/po/sr.po +++ b/po/sr.po @@ -1747,6 +1747,9 @@ msgid "Missing Surname" msgstr "Недостаје презиме" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[У животу]" + msgid "Living" msgstr "У животу" diff --git a/po/sv.po b/po/sv.po index 4c5461daa..f94f85fe0 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1753,6 +1753,9 @@ msgid "Missing Surname" msgstr "Saknat efternamn" #: ../gramps/gen/config.py:311 ../gramps/gen/config.py:313 +msgid "[Living]" +msgstr "[Levande]" + msgid "Living" msgstr "Levande" diff --git a/po/uk.po b/po/uk.po index a7a5a6848..6d1c85446 100644 --- a/po/uk.po +++ b/po/uk.po @@ -1753,6 +1753,9 @@ msgid "Missing Surname" msgstr "Відсутнє прізвище" #: ../gramps/gen/config.py:311 ../gramps/gen/config.py:313 +msgid "[Living]" +msgstr "[Живий(ва)]" + msgid "Living" msgstr "Живий(ва)" diff --git a/po/zh_CN.po b/po/zh_CN.po index edaa6847c..63fd862ee 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -1577,6 +1577,9 @@ msgid "Missing Surname" msgstr "缺失的姓" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[健在]" + msgid "Living" msgstr "健在" diff --git a/po/zh_HK.po b/po/zh_HK.po index d1755d6ae..45b04e464 100644 --- a/po/zh_HK.po +++ b/po/zh_HK.po @@ -1578,6 +1578,9 @@ msgid "Missing Surname" msgstr "缺失的姓" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[健在]" + msgid "Living" msgstr "健在" diff --git a/po/zh_TW.po b/po/zh_TW.po index 76a20ca5b..575e01528 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -1578,6 +1578,9 @@ msgid "Missing Surname" msgstr "缺失的姓" #: ../gramps/gen/config.py:310 ../gramps/gen/config.py:312 +msgid "[Living]" +msgstr "[健在]" + msgid "Living" msgstr "健在"