From f46350d59549a3c5dfd99fe1195ebdaf6499272c Mon Sep 17 00:00:00 2001 From: prculley Date: Sun, 1 Jan 2017 08:58:06 -0600 Subject: [PATCH 01/10] bug 8128; fix progress meters for transient parent --- gramps/gui/utils.py | 6 ++++++ gramps/gui/widgets/progressdialog.py | 10 +++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gramps/gui/utils.py b/gramps/gui/utils.py index e56b028e7..f78acb679 100644 --- a/gramps/gui/utils.py +++ b/gramps/gui/utils.py @@ -152,6 +152,12 @@ class ProgressMeter: self.__dialog.vbox.set_spacing(10) self.__dialog.vbox.set_border_width(24) self.__dialog.set_size_request(400, 125) + if not parent: # if we don't have an explicit parent, try to find one + for win in Gtk.Window.list_toplevels(): + if win.is_active(): + parent = win + break + # if we still don't have a parent, give up if parent: self.__dialog.set_transient_for(parent) self.__dialog.set_modal(True) diff --git a/gramps/gui/widgets/progressdialog.py b/gramps/gui/widgets/progressdialog.py index f9fd0c4e3..f522a002d 100644 --- a/gramps/gui/widgets/progressdialog.py +++ b/gramps/gui/widgets/progressdialog.py @@ -494,13 +494,17 @@ class GtkProgressDialog(Gtk.Dialog): :type title: string """ Gtk.Dialog.__init__(self) + parent = None if len(window_params) >= 2: - self.set_transient_for(window_params[1]) - else: + parent = window_params[1] # we got an explicit parent + else: # try to find an active window for win in Gtk.Window.list_toplevels(): if win.is_active(): - self.set_transient_for(win) + parent = win break + # if we still don't have a parent, give up + if parent: + self.set_transient_for(parent) if len(window_params) >= 3: flags = window_params[2] if Gtk.DialogFlags.MODAL & flags: From 3b049b5da115678b821680cc3b71a29f699ed5bd Mon Sep 17 00:00:00 2001 From: prculley Date: Tue, 10 Jan 2017 09:47:55 -0600 Subject: [PATCH 02/10] bug 9854; fix Merge Family; Error dialog hidden behind Merge Dialog While performing a Merge Family that results in an error, the Error dialog appears as normally initially. However, if the user switches to another application and back, the Error dialog can disappear (it is under the Merge dialog in the UI). The mouse cannot clear this up (although the keyboard 'enter' or 'Esc' keys will be directed to the Error dialog and close everything. --- gramps/gui/merge/mergefamily.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gramps/gui/merge/mergefamily.py b/gramps/gui/merge/mergefamily.py index a97690449..57d675d2d 100644 --- a/gramps/gui/merge/mergefamily.py +++ b/gramps/gui/merge/mergefamily.py @@ -225,6 +225,6 @@ class MergeFamily(ManagedWindow): query.execute() except MergeError as err: ErrorDialog(_("Cannot merge people"), str(err), - parent=self.uistate.window) + parent=self.window) self.uistate.set_busy_cursor(False) self.close() From 3bcea79cc562b1a24210e75fcc160c60c01729c7 Mon Sep 17 00:00:00 2001 From: Luigi Toscano Date: Wed, 11 Jan 2017 02:11:35 +0100 Subject: [PATCH 03/10] Italian translation updates and fixes --- po/it.po | 656 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 468 insertions(+), 188 deletions(-) diff --git a/po/it.po b/po/it.po index 142eef1f8..586e31f3f 100644 --- a/po/it.po +++ b/po/it.po @@ -57,20 +57,20 @@ # # Marco Molteni , 2001-2002;. # Lorenzo Cappelletti , 2003. -# Luigi Toscano , 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016. +# Luigi Toscano , 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017. msgid "" msgstr "" "Project-Id-Version: gramps\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-01-05 09:16+0100\n" -"PO-Revision-Date: 2016-01-11 01:40+0100\n" +"PO-Revision-Date: 2017-01-11 01:55+0100\n" "Last-Translator: Luigi Toscano \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.5\n" +"X-Generator: Lokalize 2.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../data/gramps.appdata.xml.in.h:1 @@ -1832,6 +1832,7 @@ msgid "" "Use the --force-unlock option if you are sure that the database is not in " "use." msgstr "" +"Usare l'opzione --force-unlock se si è certi che il database non sia in uso." #. already errors encountered. Show first one on terminal and exit #: ../gramps/cli/grampscli.py:350 @@ -1863,7 +1864,7 @@ msgstr "=nomefile" #: ../gramps/cli/plug/__init__.py:284 msgid "Output file name. MANDATORY" -msgstr "" +msgstr "Nome del file di output. RICHIESTO." #: ../gramps/cli/plug/__init__.py:285 msgid "=format" @@ -1948,7 +1949,7 @@ msgstr "" "accettabili" #: ../gramps/cli/plug/__init__.py:504 -#, fuzzy, python-format +#, python-format msgid "" "Ignoring '%(notranslate1)s=%(notranslate2)s' and using '%(notranslate1)s=" "%(notranslate3)s'." @@ -1959,7 +1960,7 @@ msgstr "" #: ../gramps/cli/plug/__init__.py:510 #, python-format msgid "Use '%(notranslate)s' to see valid values." -msgstr "Usare «%(notranslate)s» per vedere i valori validi." +msgstr "Usare «%(notranslate)s» per vedere valori validi." #: ../gramps/cli/plug/__init__.py:528 #, python-format @@ -3774,18 +3775,16 @@ msgid "Matches a citation with a source with a specified Gramps ID" msgstr "Estrae le citazioni con fonte avente un ID Gramps specifico" #: ../gramps/gen/filters/rules/citation/_hassourcenoteregexp.py:52 -#, fuzzy msgid "Citations having source notes containing " -msgstr "Citazioni con note fonte contenenti " +msgstr "Citazioni con note fonte contenenti " #: ../gramps/gen/filters/rules/citation/_hassourcenoteregexp.py:53 -#, fuzzy msgid "" "Matches citations whose source notes contain a substring or match a regular " "expression" msgstr "" -"Estrae le citazioni le cui note contengono testo corrispondente ad " -"un'espressione regolare" +"Estrae le citazioni le cui note fonte contengono una sotto-stringa o " +"corrispondono ad un'espressione regolare" #: ../gramps/gen/filters/rules/citation/_hastag.py:48 #: ../gramps/gen/filters/rules/event/_hastag.py:48 @@ -3823,7 +3822,7 @@ msgstr "Citazioni con volume/pagina contenenti " #: ../gramps/gen/filters/rules/citation/_matchespagesubstringof.py:44 msgid "Matches citations whose Volume/Page contains a certain substring" msgstr "" -"Estrae le citazioni il cui volume/pagina contiene una certa sottostringa" +"Estrae le citazioni il cui volume/pagina contiene una certa sotto-stringa" #: ../gramps/gen/filters/rules/citation/_matchesrepositoryfilter.py:45 #: ../gramps/gen/filters/rules/source/_matchesrepositoryfilter.py:43 @@ -5342,17 +5341,17 @@ msgstr "" "persona specificata" #: ../gramps/gen/filters/rules/person/_isdescendantfamilyoffiltermatch.py:47 -#, fuzzy msgid "Descendant family members of match" -msgstr "Membri della famiglia discendenti da " +msgstr "" +"Membri della famiglia discendenti dalle persone corrispondenti a " #: ../gramps/gen/filters/rules/person/_isdescendantfamilyoffiltermatch.py:49 -#, fuzzy msgid "" "Matches people that are descendants or the spouse of anybody matched by a " "filter" msgstr "" -"Estrae le persone che discendono da qualcuno corrispondente ad un filtro" +"Estrae le persone che discendono da o sono coniugi di qualcuno " +"corrispondente ad un filtro" #: ../gramps/gen/filters/rules/person/_isdescendantof.py:46 msgid "Descendants of " @@ -5732,9 +5731,8 @@ msgstr "Nome:" #: ../gramps/gen/filters/rules/place/_hasdata.py:49 #: ../gramps/gui/editors/filtereditor.py:112 #: ../gramps/gui/editors/filtereditor.py:557 -#, fuzzy msgid "Place type:" -msgstr "Tipo nome" +msgstr "Tipo luogo:" #: ../gramps/gen/filters/rules/place/_hasdata.py:50 #: ../gramps/gui/glade/editplace.glade:213 @@ -5876,14 +5874,12 @@ msgid "Matches places with the particular tag" msgstr "Estrae i luoghi con una particolare etichetta" #: ../gramps/gen/filters/rules/place/_hastitle.py:49 -#, fuzzy msgid "Places matching a title" -msgstr "Luoghi corrispondenti al " +msgstr "Luoghi corrispondenti ad un titolo" #: ../gramps/gen/filters/rules/place/_hastitle.py:50 -#, fuzzy msgid "Matches places with a particular title" -msgstr "Estrae i luoghi con una particolare etichetta" +msgstr "Estrae i luoghi con un titolo particolare" #: ../gramps/gen/filters/rules/place/_inlatlonneighborhood.py:49 #: ../gramps/gui/glade/editplaceref.glade:244 @@ -6179,18 +6175,16 @@ msgid "Matches sources with a certain number of repository references" msgstr "Estrae le fonti con un certo numero di riferimenti a depositi" #: ../gramps/gen/filters/rules/source/_hasrepositorycallnumberref.py:44 -#, fuzzy msgid "Sources with repository reference containing in \"Call Number\"" -msgstr "Fonti con contenenti " +msgstr "Fonti con riferimento a deposito contente in «Segnatura»" #: ../gramps/gen/filters/rules/source/_hasrepositorycallnumberref.py:45 -#, fuzzy msgid "" "Matches sources with a repository reference\n" "containing a substring in \"Call Number\"" msgstr "" -"Estrae le fonti le cui note contengono testo corrispondente ad una " -"sottostringa" +"Estrae le fonti con riferimenti a deposito contenti\n" +"una sottostringa nella «Segnatura»" #: ../gramps/gen/filters/rules/source/_hastag.py:49 msgid "Sources with the " @@ -6209,17 +6203,17 @@ msgid "Matches sources matched by the specified filter name" msgstr "Estrae le fonti che corrispondono al filtro indicato" #: ../gramps/gen/filters/rules/source/_matchesrepositoryfilter.py:44 -#, fuzzy msgid "Sources with repository reference matching the " -msgstr "Eventi con fonti che corrispondono al " +msgstr "" +"Fonti con riferimenti a deposito che corrispondono al " #: ../gramps/gen/filters/rules/source/_matchesrepositoryfilter.py:45 -#, fuzzy msgid "" "Matches sources with a repository reference that match a certain\n" "repository filter" msgstr "" -"Estrae le persone che hanno eventi corrispondenti ad un certo filtro eventi" +"Estrae le fonti con riferimenti a deposito che corrispondono\n" +"ad un certo filtro per depositi" #: ../gramps/gen/filters/rules/source/_matchestitlesubstringof.py:43 msgid "Sources with title containing " @@ -7976,7 +7970,7 @@ msgstr "Distretto" #: ../gramps/gen/lib/placetype.py:77 ../gramps/plugins/view/geoplaces.py:540 msgid "Borough" -msgstr "" +msgstr "Circoscrizione" #: ../gramps/gen/lib/placetype.py:78 ../gramps/plugins/view/geoplaces.py:588 msgid "Municipality" @@ -9177,10 +9171,10 @@ msgstr "" "Impossibile aprire l'elenco di file di banche dati recenti {file}: {error}" #: ../gramps/gen/recentfiles.py:265 -#, fuzzy, python-brace-format +#, python-brace-format msgid "Unable to open list of recent DBs file {fname}: {error}" msgstr "" -"Impossibile aprire l'elenco di file di banche dati recenti {file}: {error}" +"Impossibile aprire l'elenco di file di banche dati recenti {fname}: {error}" #: ../gramps/gen/recentfiles.py:269 #, python-brace-format @@ -9190,6 +9184,11 @@ msgid "" "If you're sure there is no problem with other files, delete it, and restart " "Gramps." msgstr "" +"Errore analizzando l'elenco di banche dati recenti dal file {fname}: " +"{error}.\n" +"Questo potrebbe indicare un danno nei file.\n" +"Se si è sicuri dell'assenza di problemi in altri file, allora lo si può " +"eliminare e riavviare Gramps." #: ../gramps/gen/relationship.py:1273 #: ../gramps/plugins/view/pedigreeview.py:1530 @@ -9636,22 +9635,20 @@ msgid "the filter" msgstr "il filtro" #: ../gramps/gen/utils/grampslocale.py:852 -#, fuzzy msgid "the citation" -msgstr "Ogni citazione" +msgstr "la citazione" #: ../gramps/gen/utils/grampslocale.py:854 msgid "See details" msgstr "Vedere i dettagli" #: ../gramps/gen/utils/image.py:123 -#, fuzzy msgid "" "WARNING: PIL module not loaded. Image cropping in report files will be " "impaired." msgstr "" -"ATTENZIONE: il modulo PIL non è caricato. Le funzionalità relative al " -"ritaglio di immagini nei resoconti non saranno funzionanti." +"ATTENZIONE: il modulo PIL non è caricato. Il ritaglio delle immagini nei " +"file dei resoconti non sarà funzionante." #: ../gramps/gen/utils/keyword.py:54 msgid "Person|TITLE" @@ -11050,7 +11047,7 @@ msgstr "_Interrompere" #: ../gramps/gui/dbloader.py:202 ../gramps/gui/dbloader.py:217 #: ../gramps/gui/dbloader.py:247 msgid "Are you sure you want to upgrade this Family Tree?" -msgstr "Si desidera aggiornare davvero questo albero genealogico?" +msgstr "Si vuole davvero aggiornare questo albero genealogico?" #: ../gramps/gui/dbloader.py:205 ../gramps/gui/dbloader.py:220 #: ../gramps/gui/dbloader.py:250 @@ -11070,16 +11067,18 @@ msgid "Cancel" msgstr "Annulla" #: ../gramps/gui/dbloader.py:232 -#, fuzzy msgid "Are you sure you want to downgrade this Family Tree?" msgstr "" -"Si desidera tornare alla versione precedente di questo albero genealogico?" +"Si vuole davvero tornare alla versione precedente di questo albero " +"genealogico?" #: ../gramps/gui/dbloader.py:235 msgid "" "I have made a backup,\n" "please downgrade my Family Tree" msgstr "" +"La copia di sicurezza è stata effettuata, ripristinare\n" +"la versione una versione precedente dell'albero genealogico." #: ../gramps/gui/dbloader.py:321 msgid "All files" @@ -12218,22 +12217,18 @@ msgid "Create and add a new place name" msgstr "Crea e aggiunge un nuovo nome di luogo" #: ../gramps/gui/editors/displaytabs/placenameembedlist.py:54 -#, fuzzy msgid "Remove the existing place name" msgstr "Rimuove il nome esistente del luogo" #: ../gramps/gui/editors/displaytabs/placenameembedlist.py:55 -#, fuzzy msgid "Edit the selected place name" msgstr "Modifica il nome del luogo selezionato" #: ../gramps/gui/editors/displaytabs/placenameembedlist.py:56 -#, fuzzy msgid "Move the selected place name upwards" msgstr "Sposta in alto il nome del luogo selezionato" #: ../gramps/gui/editors/displaytabs/placenameembedlist.py:57 -#, fuzzy msgid "Move the selected place name downwards" msgstr "Sposta in basso il nome del luogo selezionato" @@ -12444,6 +12439,11 @@ msgid "" "location of the information referenced within the source in the 'Volume/" "Page' field." msgstr "" +"Una fonte è qualsiasi cosa (testimonianza personale, registrazione video, " +"fotografia, rubrica di giornale, lapide,...) da cui possono essere estratte " +"delle informazioni. Per creare una citazione, selezionare per prima cosa la " +"fonte selezionata, e quindi registrare la posizione delle informazioni a cui " +"fa riferimento la fonte nel campo «Volume/pagina»." #: ../gramps/gui/editors/editcitation.py:300 msgid "Cannot save citation. ID already exists." @@ -13360,7 +13360,6 @@ msgstr "Il nome del luogo non può essere vuoto" #: ../gramps/gui/editors/editplaceref.py:58 #: ../gramps/gui/editors/editplaceref.py:99 -#, fuzzy msgid "Place Reference Editor" msgstr "Editor riferimento luogo" @@ -13666,9 +13665,8 @@ msgstr "" "senza fonti." #: ../gramps/gui/editors/filtereditor.py:562 -#, fuzzy msgid "Include selected Gramps ID" -msgstr "Includi gli ID Gramps" +msgstr "Includi gli ID Gramps selezionati" #: ../gramps/gui/editors/filtereditor.py:564 msgid "Use exact case of letters" @@ -13829,7 +13827,7 @@ msgstr "Per selezionare una fonte, trascinare oppure usare i pulsanti" #: ../gramps/gui/editors/objectentries.py:343 msgid "First add a source using the button" -msgstr "" +msgstr "Per prima cosa aggiungere una fonte usando il pulsante" #: ../gramps/gui/editors/objectentries.py:344 msgid "Edit source" @@ -14254,6 +14252,8 @@ msgid "" "If you check this button, your next answer will apply to the rest of the " "selected items" msgstr "" +"Se il pulsante viene premuto, la risposta successiva si applicherà al resto " +"degli elementi selezionati" #: ../gramps/gui/glade/dialog.glade:763 ../gramps/gui/glade/dialog.glade:780 #: ../gramps/gui/glade/dialog.glade:892 @@ -14830,7 +14830,7 @@ msgstr "Con_tea:" msgid "Third level of place division. Eg., in the USA a county." msgstr "" "Terzo livello della suddivisione di un luogo. Ad esempio, una contea negli " -"USA" +"USA." #: ../gramps/gui/glade/editlocation.glade:192 msgid "_State:" @@ -14957,11 +14957,10 @@ msgid "Double click image to view in an external viewer" msgstr "Doppio clic sull'immagine per aprirla in un visualizzatore esterno" #: ../gramps/gui/glade/editmediaref.glade:533 -#, fuzzy msgid "Type of media object as indicated by the computer, eg Image, Video, ..." msgstr "" -"Tipo dell'oggetto multimediale come indicato dal computer, ad es. Immagine, " -"Video, ..." +"Tipo dell'oggetto multimediale come indicato dal computer, ad es. immagine, " +"video, ..." #: ../gramps/gui/glade/editmediaref.glade:650 msgid "Select a file" @@ -14994,7 +14993,6 @@ msgid "Suffi_x:" msgstr "S_uffisso:" #: ../gramps/gui/glade/editname.glade:235 -#, fuzzy msgid "C_all Name:" msgstr "Ps_eudonimo:" @@ -15040,7 +15038,7 @@ msgstr "Un nome descrittivo dato al luogo o in aggiunta al nome ufficiale." #: ../gramps/gui/glade/editname.glade:333 #, fuzzy msgid "Given Name(s) " -msgstr "Nome" +msgstr "Nome/i" #: ../gramps/gui/glade/editname.glade:384 msgid "_Family Nick Name:" @@ -15130,7 +15128,7 @@ msgstr "" #: ../gramps/gui/glade/editnote.glade:101 #, fuzzy msgid "Styled Text Editor" -msgstr "Editor stile" +msgstr "Editor di testo con stile" #: ../gramps/gui/glade/editnote.glade:146 msgid "A type to classify the note." @@ -15252,12 +15250,19 @@ msgid "" "occasions. Events can be shared between people, each indicating their role " "in the event." msgstr "" +"Descrizione dell'associazione, ad es. padrino, amica, ...\n" +"\n" +"Nota: usare invece gli eventi per le relazioni che collegano un intervalli " +"temporali od occasioni specifiche. Gli eventi possono essere condivisi tra " +"le persone, e per ognuna si può indicare il relativo role nell'evento." #: ../gramps/gui/glade/editpersonref.glade:176 msgid "" "Use the select button to choose a person that has an association to the " "edited person." msgstr "" +"Usare il pulsante selezionato per scegliere una persona che ha " +"un'associazione con la persona che viene modificata." #: ../gramps/gui/glade/editpersonref.glade:193 msgid "Select a person that has an association to the edited person." @@ -15354,6 +15359,8 @@ msgid "" "Language in which the name is written. Valid values are two character ISO " "codes. For example: en, fr, de, nl ..." msgstr "" +"Lingua in cui il nome è scritto. I valori validi sono i codici ISO a due " +"caratteri. Ad esempio: en, fr, de, nl, it, ..." #: ../gramps/gui/glade/editplaceref.glade:280 msgid "" @@ -16379,6 +16386,15 @@ msgid "" "See the Gramps README documentation for installation prerequisites,\n" "typically located in /usr/share/doc/gramps.\n" msgstr "" +"Le traduzioni di GTK per la lingua attuale (%(language)s) non sono " +"disponibili.\n" +"%(bold_start)sGramps%(bold_end)s continuerà comunque.\n" +"Di conseguenza l'interfaccia sarà probabilmente non perfettamente " +"funzionante, specialmente per le lingue scritte da destra verso sinistra.\n" +"\n" +"Consultare la documentazione di Gramps README per i prerequisiti di " +"installazione,\n" +"il file si trova normalmente in /usr/share/doc/gramps.\n" #: ../gramps/gui/grampsgui.py:297 msgid "Error parsing arguments" @@ -17826,7 +17842,6 @@ msgstr "Seleziona fonte o citazione" #: ../gramps/gui/selectors/selectcitation.py:74 #: ../gramps/plugins/view/citationtreeview.py:93 -#, fuzzy msgid "Source: Title or Citation: Volume/Page" msgstr "Fonte: titolo o citazione: volume/pagina" @@ -17932,6 +17947,8 @@ msgid "" "You have no installed dictionaries. Either install one or disable spell " "checking" msgstr "" +"Non ci sono dizionari installati. Bisogna installarne almeno uno o " +"disabilitare il controllo ortografico" #: ../gramps/gui/spell.py:153 #, python-format @@ -17960,7 +17977,7 @@ msgstr "" #: ../gramps/gui/undohistory.py:57 msgid "11" -msgstr "" +msgstr "11" #: ../gramps/gui/undohistory.py:73 msgid "Undo History" @@ -28794,15 +28811,15 @@ msgstr "" #: ../gramps/plugins/lib/maps/geography.py:425 #, python-format msgid "Clear the '%(map)s' tiles cache." -msgstr "Pulisci la cache dei taselli di «%(map)s»" +msgstr "Pulisci la cache dei taselli di «%(map)s»." #: ../gramps/plugins/lib/maps/geography.py:882 msgid "You can't use the print functionality" -msgstr "" +msgstr "Non è possibile usare la funzione di stampa" #: ../gramps/plugins/lib/maps/geography.py:883 msgid "Your Gtk version is too old." -msgstr "" +msgstr "La versione di Gtk è troppo vecchia." #: ../gramps/plugins/lib/maps/geography.py:924 #: ../gramps/plugins/view/geoclose.py:550 @@ -33800,7 +33817,7 @@ msgstr "Carattere del testo" #: ../gramps/plugins/view/fanchartview.py:298 #, fuzzy msgid "Gender colors" -msgstr "Colori per il sesso" +msgstr "Colori del sesso" #: ../gramps/plugins/view/fanchart2wayview.py:306 #: ../gramps/plugins/view/fanchartdescview.py:303 @@ -33819,7 +33836,7 @@ msgstr "Gradiente in base all'età (0-100)" #: ../gramps/plugins/view/fanchartview.py:302 #, fuzzy msgid "Single main (filter) color" -msgstr "Colore principale singolo (filtro)" +msgstr "Colore principale (per filtro) singolo" #: ../gramps/plugins/view/fanchart2wayview.py:310 #: ../gramps/plugins/view/fanchartdescview.py:307 @@ -33836,14 +33853,16 @@ msgstr "Bianco" #: ../gramps/plugins/view/fanchart2wayview.py:312 #: ../gramps/plugins/view/fanchartdescview.py:309 #: ../gramps/plugins/view/fanchartview.py:305 +#, fuzzy msgid "Color scheme classic report" -msgstr "" +msgstr "Schema di colore classico per resconto" #: ../gramps/plugins/view/fanchart2wayview.py:313 #: ../gramps/plugins/view/fanchartdescview.py:310 #: ../gramps/plugins/view/fanchartview.py:306 +#, fuzzy msgid "Color scheme classic view" -msgstr "" +msgstr "Schema di colore classico per la vista" #: ../gramps/plugins/view/fanchart2wayview.py:322 #: ../gramps/plugins/view/fanchartdescview.py:319 @@ -33942,9 +33961,8 @@ msgid "Quadrant" msgstr "Quadrante" #: ../gramps/plugins/view/fanchartview.py:344 -#, fuzzy msgid "Show children ring" -msgstr "Figli mancanti" +msgstr "Mostrare l'anello dei figli" #: ../gramps/plugins/view/geoclose.py:143 #: ../gramps/plugins/view/geography.gpr.py:159 @@ -33953,7 +33971,7 @@ msgstr "Hanno avuto la possibilità di incontrarsi?" #: ../gramps/plugins/view/geoclose.py:177 msgid "GeoClose" -msgstr "" +msgstr "GeoVicinanza" #: ../gramps/plugins/view/geoclose.py:230 #, python-format @@ -33974,10 +33992,13 @@ msgid "You must choose one reference person." msgstr "Bisogna scegliere una persona di riferimento." #: ../gramps/plugins/view/geoclose.py:249 +#, fuzzy msgid "" "Go to the person view and select the people you want to compare. Return to " "this view and use the history." msgstr "" +"Va alla vista delle persone e seleziona le persone da confrontare. Tornando " +"a questa vista si può usare la cronologia." #: ../gramps/plugins/view/geoclose.py:299 msgid "reference _Person" @@ -33989,9 +34010,8 @@ msgid "Select the person which is the reference for life ways" msgstr "Seleziona la persona di riferimento per il modo di vita" #: ../gramps/plugins/view/geoclose.py:315 -#, fuzzy msgid "Select the person which will be our reference." -msgstr "Selezionare la persona che sarà il riferimento." +msgstr "Seleziona la persona che sarà il riferimento." #: ../gramps/plugins/view/geoclose.py:412 #: ../gramps/plugins/view/geofamclose.py:496 @@ -34015,6 +34035,12 @@ msgid "" "The value 1 means about 4.6 miles or 7.5 kms.\n" "The value is in tenth of degree." msgstr "" +"Il raggio di probabilità della zona di incontro.\n" +"La zona colorata è approssimativa.\n" +"La zona di incontro è mostrata solo per la persona di riferimento.\n" +"Il valore 9 indica circa 42 miglia o 67 km.\n" +"Il valore 1 indica circa 4,6 miglia o 7,5 km.\n" +"Il valore è in decimi di grado." #: ../gramps/plugins/view/geoclose.py:602 #: ../gramps/plugins/view/geofamclose.py:792 @@ -34052,7 +34078,6 @@ msgstr "Mostra tutti gli eventi" #: ../gramps/plugins/view/geoevents.py:408 #: ../gramps/plugins/view/geoplaces.py:484 #: ../gramps/plugins/view/geoplaces.py:489 -#, fuzzy msgid "Centering on Place" msgstr "Centrare su un luogo" @@ -34062,9 +34087,8 @@ msgid "Have these two families been able to meet?" msgstr "Hanno mai avuto la possibilità di incontrarsi, queste due famiglie?" #: ../gramps/plugins/view/geofamclose.py:174 -#, fuzzy msgid "GeoFamClose" -msgstr "GeoFamiglia" +msgstr "GeoVicinanzaFamiglia" #: ../gramps/plugins/view/geofamclose.py:217 #: ../gramps/plugins/view/geofamily.py:291 @@ -34139,13 +34163,18 @@ msgid "" "The value 1 means about 4.6 miles or 7.5 kms.\n" "The value is in tenth of degree." msgstr "" +"Il raggio di probabilità della zona di incontro.\n" +"La zona colorata è approssimativa.\n" +"La zona di incontro è mostrata solo per la famiglia di riferimento.\n" +"Il valore 9 indica circa 42 miglia o 67 km.\n" +"Il valore 1 indica circa 4,6 miglia o 7,5 km.\n" +"Il valore è in decimi di grado." #: ../gramps/plugins/view/geofamily.py:115 msgid "Family places map" msgstr "Mappa luoghi familiari" #: ../gramps/plugins/view/geofamily.py:137 -#, fuzzy msgid "GeoFamily" msgstr "GeoFamiglia" @@ -34251,7 +34280,7 @@ msgstr "Discendenza della persona attiva." #: ../gramps/plugins/view/geomoves.py:173 msgid "GeoMoves" -msgstr "" +msgstr "GeoSpostamenti" #: ../gramps/plugins/view/geomoves.py:490 #, python-format @@ -34279,7 +34308,6 @@ msgid "Person places map" msgstr "Mappa luoghi persona" #: ../gramps/plugins/view/geoperson.py:170 -#, fuzzy msgid "GeoPerson" msgstr "GeoPersona" @@ -34318,7 +34346,6 @@ msgid "Places map" msgstr "Mappa dei luoghi" #: ../gramps/plugins/view/geoplaces.py:185 -#, fuzzy msgid "GeoPlaces" msgstr "GeoLuoghi" @@ -34366,7 +34393,7 @@ msgstr "È possibile cambiare questo valore nelle opzioni geografiche." #: ../gramps/plugins/view/geoplaces.py:409 msgid "In this case, it may take time to show all markers." msgstr "" -"In questo caso, mostrare tutti i marcatori potrebbe richiedere del tempo" +"In questo caso, mostrare tutti i marcatori potrebbe richiedere del tempo." #: ../gramps/plugins/view/geoplaces.py:441 #: ../gramps/plugins/view/geoplaces.py:465 @@ -34936,11 +34963,9 @@ msgid "Postal Code" msgstr "Codice postale" #: ../gramps/plugins/webreport/narrativeweb.py:1675 -#, fuzzy, python-format +#, python-format msgid "Generated by %(gramps_home_html_start)sGramps%(html_end)s %(version)s" -msgstr "" -"Generato da %(gramps_home_html_start)sGramps%(html_end)s %(version)s il " -"%(date)s" +msgstr "Generato da %(gramps_home_html_start)sGramps%(html_end)s %(version)s" #: ../gramps/plugins/webreport/narrativeweb.py:1685 #, python-format @@ -34948,9 +34973,9 @@ msgid "Last change was the %(date)s" msgstr "Ultima modifica il %(date)s" #: ../gramps/plugins/webreport/narrativeweb.py:1688 -#, fuzzy, python-format +#, python-format msgid " on %(date)s" -msgstr "%(date)s" +msgstr " il %(date)s" #: ../gramps/plugins/webreport/narrativeweb.py:1709 #: ../gramps/plugins/webreport/narrativeweb.py:1714 @@ -35392,7 +35417,6 @@ msgid "Relation to the center person" msgstr "Relazione con la persona principale" #: ../gramps/plugins/webreport/narrativeweb.py:7580 -#, fuzzy msgid "Relation to main person" msgstr "Relazione con la persona principale" @@ -35750,8 +35774,9 @@ msgid "Whether to include unused or unreferenced media objects" msgstr "Indica se includere una galleria di oggetti multimediali" #: ../gramps/plugins/webreport/narrativeweb.py:9805 +#, fuzzy msgid "Create and only use thumbnail- sized images" -msgstr "" +msgstr "Crea ed usa solo immagini di dimensione miniatura" #: ../gramps/plugins/webreport/narrativeweb.py:9807 msgid "" @@ -35989,6 +36014,9 @@ msgid "" "Whether or not to add an individual page map showing all the places on this " "page. This will allow you to see how your family traveled around the country." msgstr "" +"Se aggiungere o meno una singola pagina della mappa che mostri tutti i " +"luoghi in questa pagina. Questo permette di vedere come la famiglia ha " +"viaggiato attraverso la nazione." #: ../gramps/plugins/webreport/narrativeweb.py:10007 #, fuzzy @@ -36012,6 +36040,8 @@ msgid "" "Select which option that you would like to have for the Google Maps Family " "Map pages..." msgstr "" +"Selezionare quali opzioni abilitare per le pagine delle mappe familiari di " +"Google Maps..." #: ../gramps/plugins/webreport/narrativeweb.py:10019 #, fuzzy @@ -36408,6 +36438,94 @@ msgstr "Nebraska" msgid "No style sheet" msgstr "Nessun foglio di stile" +#~ msgid "Exiting." +#~ msgstr "Uscita." + +#~ msgid "" +#~ "\n" +#~ "Usage: gramps.py [OPTION...]\n" +#~ " --load-modules=MODULE1,MODULE2,... Dynamic modules to load\n" +#~ "\n" +#~ "Help options\n" +#~ " -?, --help Show this help message\n" +#~ " --usage Display brief usage message\n" +#~ "\n" +#~ "Application options\n" +#~ " -O, --open=FAMILY_TREE Open Family Tree\n" +#~ " -C, --create=FAMILY_TREE Create on open if new Family " +#~ "Tree\n" +#~ " -i, --import=FILENAME Import file\n" +#~ " -e, --export=FILENAME Export file\n" +#~ " -f, --format=FORMAT Specify Family Tree format\n" +#~ " -a, --action=ACTION Specify action\n" +#~ " -p, --options=OPTIONS_STRING Specify options\n" +#~ " -d, --debug=LOGGER_NAME Enable debug logs\n" +#~ " -l List Family Trees\n" +#~ " -L List Family Trees in Detail\n" +#~ " -t List Family Trees, tab " +#~ "delimited\n" +#~ " -u, --force-unlock Force unlock of Family Tree\n" +#~ " -s, --show Show config settings\n" +#~ " -c, --config=[config.setting[:value]] Set config setting(s) and start " +#~ "Gramps\n" +#~ " -y, --yes Don't ask to confirm dangerous " +#~ "actions (non-GUI mode only)\n" +#~ " -q, --quiet Suppress progress indication " +#~ "output (non-GUI mode only)\n" +#~ " -v, --version Show versions\n" +#~ msgstr "" +#~ "\n" +#~ "Uso: gramps.py [OPZIONE...]\n" +#~ " --load-modules=MODULO1,MODULO2,... Moduli dinamici da caricare\n" +#~ "\n" +#~ "Opzioni di aiuto\n" +#~ " -?, --help Mostra questo messaggio di " +#~ "aiuto\n" +#~ " --usage Mostra informazioni concise " +#~ "sull'uso\n" +#~ "\n" +#~ "Opzioni dell'applicazione\n" +#~ " -O, --open=ALBERO_GENEALOGICO Apri albero genealogico\n" +#~ " -C, --create=ALBERO_GENEALOGICO Crea all'apertura se nuovo " +#~ "albero genealogico\n" +#~ " -i, --import=NOMEFILE Importa file\n" +#~ " -e, --export=NOMEFILE Esporta file\n" +#~ " -f, --format=FORMATO Specifica il formato " +#~ "dell'albero\n" +#~ " -a, --action=AZIONE Specifica azione\n" +#~ " -p, --options=STRINGA_OPZIONI Specifica opzioni\n" +#~ " -d, --debug=NOME_LOGGER Abilita log di debug\n" +#~ " -l Elenca alberi genealogici\n" +#~ " -L Elenca alberi in dettaglio\n" +#~ " -t Elenca alberi, delimitati da " +#~ "tabulatori\n" +#~ " -u, --force-unlock Forza sblocco degli alberi " +#~ "genealogici\n" +#~ " -s, --show Mostra impostazioni di " +#~ "configurazione\n" +#~ " -c, --config=[impost.config[:valore]] Configura le impostazioni di " +#~ "configurazione e avvia Gramps\n" +#~ " -y, --yes Non chiede conferma per " +#~ "operazioni pericolose (solo modalità non grafica)\n" +#~ " -q, --quiet Nasconde le indicazioni di " +#~ "avanzamento in uscita (solo modalità non grafica)\n" +#~ " -v, --version Mostra versioni\n" + +#~ msgid "Bsddb version" +#~ msgstr "Versione di Bsddb" + +#~ msgid "Schema version" +#~ msgstr "Versione dello schema" + +#~ msgid "Living" +#~ msgstr "In vita" + +#~ msgid "none" +#~ msgstr "nessuno" + +#~ msgid "BIC" +#~ msgstr "BIC" + #~ msgid "" #~ "A person with multiple relations with the same spouse is about to be " #~ "merged. This is beyond the capabilities of the merge routine. The merge " @@ -36422,82 +36540,6 @@ msgstr "Nessun foglio di stile" #~ "Stavano per essere fuse diverse famiglie. Questo è insolito, la fusione è " #~ "stata annullata." -#~ msgid "Check now" -#~ msgstr "Controllare adesso" - -#~ msgid "%(father)s and %(mother)s (%(id)s)" -#~ msgstr "%(father)s e %(mother)s (%(id)s)" - -#~ msgid "Book Menu" -#~ msgstr "Menu libro" - -#~ msgid "Available Items Menu" -#~ msgstr "Menu elementi disponibili" - -#~ msgid "Loading plugins..." -#~ msgstr "Caricamento plugin..." - -#~ msgid "People Menu" -#~ msgstr "Menu persone" - -#~ msgid "Descendent Menu" -#~ msgstr "Menu discendenza" - -#~ msgid "Person or Place|Title" -#~ msgstr "Titolo" - -#~ msgid "Birth place id" -#~ msgstr "ID luogo di nascita" - -#~ msgid "Baptism place id" -#~ msgstr "ID luogo del Battesimo" - -#~ msgid "Burial place id" -#~ msgstr "ID luogo di sepoltura" - -#~ msgid "Death place id" -#~ msgstr "ID luogo del decesso" - -#~ msgid "Death cause" -#~ msgstr "Causa del decesso" - -#~ msgid "Gramps id" -#~ msgstr "id Gramps" - -#~ msgid "Parent2" -#~ msgstr "Genitore2" - -#~ msgid "Parent1" -#~ msgstr "Genitore1" - -#~ msgid "Enclosed by" -#~ msgstr "Delimitato da" - -#~ msgid "Empty event note ignored" -#~ msgstr "Ignorata nota evento vuota" - -#~ msgid "BLOB ignored" -#~ msgstr "BLOB ignorato" - -#~ msgid "Select filter to restrict people that appear on report" -#~ msgstr "" -#~ "Seleziona il filtro per restringere le persone che compaiono nel resoconto" - -#~ msgid "Family Menu" -#~ msgstr "Menu famiglia" - -#~ msgid "Gramps ID" -#~ msgstr "ID Gramps" - -#~ msgid "Exiting." -#~ msgstr "Uscita." - -#~ msgid "none" -#~ msgstr "nessuno" - -#~ msgid "BIC" -#~ msgstr "BIC" - #~ msgid "" #~ "\n" #~ "You don't have the python3 bsddb3 package installed. This package is " @@ -36511,18 +36553,118 @@ msgstr "Nessun foglio di stile" #~ "\n" #~ "Adesso Gramps verrà chiuso." -#~ msgid "Include original person" -#~ msgstr "Includere persona originale" +#~ msgid "Check for updates" +#~ msgstr "Controllare aggiornamenti" + +#~ msgid "Check now" +#~ msgstr "Controllare adesso" + +#~ msgid "Gramps: Import Family Tree" +#~ msgstr "Gramps: Importa albero genealogico" + +#, fuzzy +#~ msgid "manual|Select_a_media_object_selector" +#~ msgstr "Fusione_oggetti_multimediali" + +#~ msgid "" +#~ "This Gramps ('master') is a development release. This version is not " +#~ "meant for normal usage. Use at your own risk.\n" +#~ "\n" +#~ "This version may:\n" +#~ "1) Work differently than you expect.\n" +#~ "2) Fail to run at all.\n" +#~ "3) Crash often.\n" +#~ "4) Corrupt your data.\n" +#~ "5) Save data in a format that is incompatible with the official release.\n" +#~ "\n" +#~ "%(bold_start)sBACKUP%(bold_end)s your existing databases before opening " +#~ "them with this version, and make sure to export your data to XML every " +#~ "now and then." +#~ msgstr "" +#~ "L'attuale version di Gramps ('master') è una versione di sviluppo. Questa " +#~ "versione non è pensata per l'uso normale; va usata a proprio rischio.\n" +#~ "\n" +#~ "Questa versione potrebbe:\n" +#~ "1) funzionare in modo differente da come ci si aspetta.\n" +#~ "2) non avviarsi completamente.\n" +#~ "3) bloccarsi spesso.\n" +#~ "4) rovinare i dati.\n" +#~ "5) salvare i dati in un formato non compatibile con la versione " +#~ "ufficiale.\n" +#~ "\n" +#~ "Effettuare un %(bold_start)sBACKUP%(bold_end)s dei database esistenti " +#~ "prima di aprirli con questa versione, e assicurarsi di esportare i dati " +#~ "in XML ogni tanto." + +#~ msgid "" +#~ "This is the Bug Reporting Assistant. It will help you to make a bug " +#~ "report to the Gramps developers that will be as detailed as possible.\n" +#~ "\n" +#~ "The assistant will ask you a few questions and will gather some " +#~ "information about the error that has occured and the operating " +#~ "environment. At the end of the assistant you will be asked to file a bug " +#~ "report on the Gramps bug tracking system. The assistant will place the " +#~ "bug report on the clip board so that you can paste it into the form on " +#~ "the bug tracking website and review exactly what information you want to " +#~ "include." +#~ msgstr "" +#~ "Questo è l'assistente per la segnalazione di bug, che aiuta nella " +#~ "preparazione di segnalazioni di bug quanto più dettagliate possibile da " +#~ "inviare agli sviluppatori di Gramps.\n" +#~ "\n" +#~ "L'assistente chiederà di rispondere ad alcune domande e raccoglierà " +#~ "alcune informazioni sull'errore che si è verificato e sull'ambiente " +#~ "operativo. Alla fine della procedura richiederà di inviare la " +#~ "segnalazione di bug sul sistema web di gestione dei bug di Gramps; in " +#~ "particolare l'assistente provvederà a copiare negli appunti la " +#~ "segnalazione di bug, in modo da poterla incollare facilmente " +#~ "nell'apposito modulo sul sistema web di gestione dei bug e rivedere " +#~ "quindi quali informazioni includere o meno." + +#~ msgid "" +#~ "Please provide as much information as you can about what you were doing " +#~ "when the error occured." +#~ msgstr "" +#~ "Fornire informazioni quanto più dettagliate possibile sulle operazioni " +#~ "eseguite quando si è verificato l'errore." + +#~ msgid "" +#~ "This is your opportunity to describe what you were doing when the error " +#~ "occured." +#~ msgstr "" +#~ "È possibile descrivere qui le operazioni eseguite quando si è verificato " +#~ "l'errore." + +#~ msgid "You need to restart Gramps to see new views." +#~ msgstr "È necessario riavviare GRAMPS per vedere le nuove viste." + +#~ msgid "%(father)s and %(mother)s (%(id)s)" +#~ msgstr "%(father)s e %(mother)s (%(id)s)" + +#~ msgid "Your database is empty." +#~ msgstr "Il database è vuoto" + +#~ msgid "Book Menu" +#~ msgstr "Menu libro" + +#~ msgid "Available Items Menu" +#~ msgstr "Menu elementi disponibili" + +#~ msgid "Loading plugins..." +#~ msgstr "Caricamento plugin..." + +#~ msgid "People Menu" +#~ msgstr "Menu persone" #~ msgid "Add a Family Tree" #~ msgstr "Aggiungi un albero genealogico" +#~ msgid "Descendent Menu" +#~ msgstr "Menu discendenza" + #~ msgid "Place Locations" #~ msgstr "Posizioni luogo" -#~ msgid "Gramplet showing the locations of a place over time" -#~ msgstr "Gramplet che mostra le posizione di un luogo nel tempo" - #~ msgid "Incomplete names" #~ msgstr "Nomi incompleti" @@ -36535,38 +36677,63 @@ msgstr "Nessun foglio di stile" #~ msgid "Individuals with media objects" #~ msgstr "Persone con oggetti multimediali" +#~ msgid "Cannot find DEF file: %(deffname)s" +#~ msgstr "Impossibile trovare il file DEF: %(deffname)s" + +#~ msgid "date did not match: '%(text)s' (%(msg)s)" +#~ msgstr "date non corrispondenti: '%(text)s' (%(msg)s)" + +#~ msgid "cannot find father for I%(person)s (father=%(id)d)" +#~ msgstr "impossibile trovare il padre per I%(person)s (padre=%(id)d)" + +#~ msgid "cannot find mother for I%(person)s (mother=%(mother)d)" +#~ msgstr "impossibile trovare la madre per I%(person)s (madre=%(mother)d)" + +#~ msgid "" +#~ "Invalid date {date} in BDAY {vcard_snippet}, preserving date as text." +#~ msgstr "" +#~ "Data non valida {date} in BDAY {vcard_snippet}, la data viene preservata " +#~ "come testo." + +#~ msgid "Empty event note ignored" +#~ msgstr "Ignorata nota evento vuota" + +#~ msgid "Filtering_on|Inverse MediaObject" +#~ msgstr "oggetti multimediali non presenti" + +#~ msgid "Select filter to restrict people that appear on report" +#~ msgstr "" +#~ "Seleziona il filtro per restringere le persone che compaiono nel resoconto" + +#~ msgid "sp. see %(reference)s : %(spouse)s" +#~ msgstr "con. vedere %(reference)s:%(spouse)s" + #~ msgid "%(date)s, %(place)s" #~ msgstr "%(date)s in quel di %(place)s" +#~ msgid "%(date)s" +#~ msgstr "%(date)s" + #~ msgid "%(place)s" #~ msgstr "%(place)s" +#~ msgid "%(event_name)s: %(event_text)s" +#~ msgstr "%(event_name)s: %(event_text)s" + +#~ msgid "The center family for the report" +#~ msgstr "La famiglia centrale del resoconto" + +#~ msgid "Recursive" +#~ msgstr "Ricorsivo" + #~ msgid "Marriages/Children" #~ msgstr "Matrimoni/figli" #~ msgid "Summary of %s" #~ msgstr "Riepilogo di %s" -#~ msgid "Street: %s " -#~ msgstr "Via: %s " - -#~ msgid "Parish: %s " -#~ msgstr "Parrocchia: %s " - -#~ msgid "Locality: %s " -#~ msgstr "Località: %s " - -#~ msgid "City: %s " -#~ msgstr "Città: %s " - -#~ msgid "County: %s " -#~ msgstr "Contea/Provincia: %s " - -#~ msgid "State: %s" -#~ msgstr "Stato/regione: %s" - -#~ msgid "Country: %s " -#~ msgstr "Nazione: %s " +#~ msgid "Person Records" +#~ msgstr "Record persone" #~ msgid "The style used for the report title." #~ msgstr "Lo stile usato per il titolo del resoconto." @@ -36574,6 +36741,9 @@ msgstr "Nessun foglio di stile" #~ msgid "The style used for the report subtitle." #~ msgstr "Lo stile usato per il sottotitolo del resoconto." +#~ msgid "1 family with no parents or children found, removed.\n" +#~ msgstr "Trovata una famiglia senza genitori o figli, è state rimossa.\n" + #~ msgid "%(quantity)d families with no parents or children, removed.\n" #~ msgstr "" #~ "Trovate %(quantity)d famiglie senza genitori o figli, sono state " @@ -36625,6 +36795,12 @@ msgstr "Nessun foglio di stile" #~ "Modulo OsmGpsMap non caricato. La versione di OsmGpsMap deve essere >= " #~ "0.8, ma è stata trovata la %s" +#~ msgid "Family Menu" +#~ msgstr "Menu famiglia" + +#~ msgid "Gramps ID" +#~ msgstr "ID Gramps" + #~ msgid "Include Last Name Only" #~ msgstr "Includere solo il cognome" @@ -36642,9 +36818,73 @@ msgstr "Nessun foglio di stile" #~ msgid "birth" #~ msgstr "nascita" +#~ msgid "Include original person" +#~ msgstr "Includere persona originale" + +#~ msgid "Gramplet showing the locations of a place over time" +#~ msgstr "Gramplet che mostra le posizione di un luogo nel tempo" + +#~ msgid "Person or Place|Title" +#~ msgstr "Titolo" + +#~ msgid "Birth place id" +#~ msgstr "ID luogo di nascita" + +#~ msgid "Baptism place id" +#~ msgstr "ID luogo del Battesimo" + +#~ msgid "Burial place id" +#~ msgstr "ID luogo di sepoltura" + +#~ msgid "Death place id" +#~ msgstr "ID luogo del decesso" + +#~ msgid "Death cause" +#~ msgstr "Causa del decesso" + +#~ msgid "Gramps id" +#~ msgstr "id Gramps" + +#~ msgid "Parent2" +#~ msgstr "Genitore2" + +#~ msgid "Parent1" +#~ msgstr "Genitore1" + +#~ msgid "Enclosed by" +#~ msgstr "Delimitato da" + +#~ msgid "BLOB ignored" +#~ msgstr "BLOB ignorato" + +#~ msgid "Street: %s " +#~ msgstr "Via: %s " + +#~ msgid "Parish: %s " +#~ msgstr "Parrocchia: %s " + +#~ msgid "Locality: %s " +#~ msgstr "Località: %s " + +#~ msgid "City: %s " +#~ msgstr "Città: %s " + +#~ msgid "County: %s " +#~ msgstr "Contea/Provincia: %s " + +#~ msgid "State: %s" +#~ msgstr "Stato/regione: %s" + +#~ msgid "Country: %s " +#~ msgstr "Nazione: %s " + #~ msgid "%(new_DB_name)s (copied %(date_string)s)" #~ msgstr "%(new_DB_name)s (copiato il %(date_string)s)" +#, fuzzy +#~ msgid "manual|Tags" +#~ msgstr "Etichette" + #~ msgid "Obtaining all rows" #~ msgstr "Estrazione di tutte le righe" @@ -36715,6 +36955,9 @@ msgstr "Nessun foglio di stile" #~ "La modifica del formato della data avrà effetto dal prossimo avvio di " #~ "Gramps." +#~ msgid " %s: %s" +#~ msgstr " %s: %s" + #~ msgid "TRANSLATORS: Translate this to your name in your native language" #~ msgstr "" #~ "Luigi Toscano\n" @@ -36813,6 +37056,9 @@ msgstr "Nessun foglio di stile" #~ msgid "Add Parents" #~ msgstr "Aggiunge genitori" +#~ msgid "Select Parents" +#~ msgstr "Seleziona genitori" + #~ msgid "Reports" #~ msgstr "Resoconti" @@ -38451,6 +38697,9 @@ msgstr "Nessun foglio di stile" #~ msgid "Partner 2" #~ msgstr "Partner 2" +#~ msgid "Family/ Relationship" +#~ msgstr "Famiglia/Relazione" + #~ msgid "Person(s)" #~ msgstr "Persona/e" @@ -38474,6 +38723,9 @@ msgstr "Nessun foglio di stile" #~ "L'albero genealogico raggruppa il nome %(key)s assieme a %(present)s, non " #~ "è stato modificato il raggruppamento in %(value)s" +#~ msgid "Import database" +#~ msgstr "Importa database" + #~ msgid "%(quantity)d invalid event reference was removed\n" #~ msgid_plural "%(quantity)d invalid event references were removed\n" #~ msgstr[0] "" @@ -40110,6 +40362,9 @@ msgstr "Nessun foglio di stile" #~ msgid "Objects with " #~ msgstr "Oggetti con " +#~ msgid "Has marker of" +#~ msgstr "Ha un marcatore" + #~ msgid "Matches markers of a particular type" #~ msgstr "Estrae un particolare tipo di marcatore" @@ -40863,6 +41118,9 @@ msgstr "Nessun foglio di stile" #~ "GeoView usa OpenStreetMap ed uno degli altri fornitori di mappe.\n" #~ "Scegliere uno tra i seguenti fornitori di mappe:" +#~ msgid "Google Maps" +#~ msgstr "Google Maps" + #~ msgid "OpenLayers" #~ msgstr "OpenLayers" @@ -41032,6 +41290,9 @@ msgstr "Nessun foglio di stile" #~ msgid "females" #~ msgstr "femmine" +#~ msgid "all families" +#~ msgstr "tutte le famiglie" + #~ msgid "RepoRef" #~ msgstr "Riferimenti depositi" @@ -41504,6 +41765,9 @@ msgstr "Nessun foglio di stile" #~ msgid "Exclude _sources" #~ msgstr "Escludi _fonti" +#~ msgid "GRAMPS database" +#~ msgstr "Database GRAMPS" + #~ msgid ", " #~ msgstr ", " @@ -41511,6 +41775,10 @@ msgstr "Nessun foglio di stile" #~ msgid "Name Type" #~ msgstr "Tipo nome" +#, fuzzy +#~ msgid "Primary Name" +#~ msgstr "Principale" + #, fuzzy #~ msgid "Total names %d" #~ msgstr "Nomi totali %d" @@ -41719,10 +41987,18 @@ msgstr "Nessun foglio di stile" #~ msgid "Max chart height (px)" #~ msgstr "Larghezza tabella" +#, fuzzy +#~ msgid "Include Options" +#~ msgstr "Includere i coniugi" + #, fuzzy #~ msgid "Wheater to leave out private data." #~ msgstr "Indica se includere gli oggetti privati" +#, fuzzy +#~ msgid "Include Events" +#~ msgstr "Includere gli eventi" + #, fuzzy #~ msgid "Wheather to include a person's events." #~ msgstr "Indica se includere gli eventi." @@ -42111,6 +42387,10 @@ msgstr "Nessun foglio di stile" #~ msgid "Include source's data" #~ msgstr "Includere le fonti" +#, fuzzy +#~ msgid "Whether to include keys and values." +#~ msgstr "Indica se includere gli altri nomi." + #, fuzzy #~ msgid "Include media" #~ msgstr "Includere date" From 56335702509173283a95b737503ed8f40dcb16e3 Mon Sep 17 00:00:00 2001 From: Paul Franklin Date: Wed, 11 Jan 2017 04:13:35 -0800 Subject: [PATCH 04/10] 9795: remember the last location of windows [tag dialogs] --- gramps/gui/views/tags.py | 82 ++++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 36 deletions(-) diff --git a/gramps/gui/views/tags.py b/gramps/gui/views/tags.py index 1c87b36c6..8808d46d0 100644 --- a/gramps/gui/views/tags.py +++ b/gramps/gui/views/tags.py @@ -51,6 +51,7 @@ from ..display import display_help from ..dialog import ErrorDialog, QuestionDialog2 import gramps.gui.widgets.progressdialog as progressdlg from ..actiongroup import ActionGroup +from ..managedwindow import ManagedWindow #------------------------------------------------------------------------- # @@ -245,9 +246,7 @@ class Tags(DbGUIElement): """ Display the Organize Tags dialog. """ - organize_dialog = OrganizeTagsDialog(self.db, - self.uistate.window) - organize_dialog.run() + OrganizeTagsDialog(self.db, self.uistate, []) def cb_new_tag(self, action): """ @@ -255,8 +254,7 @@ class Tags(DbGUIElement): """ tag = Tag() tag.set_priority(self.db.get_number_of_tags()) - new_dialog = EditTag(self.db, self.uistate.window, tag) - new_dialog.run() + EditTag(self.db, self.uistate, [], tag) if tag.get_handle(): self.tag_selected_rows(tag.get_handle()) @@ -313,16 +311,28 @@ def make_callback(func, tag_handle): # Organize Tags Dialog # #------------------------------------------------------------------------- -class OrganizeTagsDialog: +class OrganizeTagsDialog(ManagedWindow): """ A dialog to enable the user to organize tags. """ - def __init__(self, db, parent_window): + def __init__(self, db, uistate, track): + ManagedWindow.__init__(self, uistate, track, self.__class__, modal=True) + # the self.top.run() below makes Gtk make it modal, so any change to + # the previous line's "modal" would require that line to be changed self.db = db - self.parent_window = parent_window self.namelist = None self.namemodel = None self.top = self._create_dialog() + self.set_window(self.top, None, _('Organize Tags')) + self.setup_configs('interface.organizetagsdialog', 400, 350) + self.show() + self.run() + self.close() + + # this is meaningless while it's modal, but since this ManagedWindow can + # have an EditTag ManagedWindow child it needs a non-None second argument + def build_menu_names(self, obj): + return (_('Organize Tags'), ' ') def run(self): """ @@ -330,6 +340,8 @@ class OrganizeTagsDialog: """ self._populate_model() while True: + # the self.top.run() makes Gtk make it modal, so any change to that + # line would require the ManagedWindow.__init__ to be changed also response = self.top.run() if response == Gtk.ResponseType.HELP: display_help(webpage=WIKI_HELP_PAGE, @@ -342,8 +354,6 @@ class OrganizeTagsDialog: with DbTxn(_('Change Tag Priority'), self.db) as trans: self.__change_tag_priority(trans) - self.top.destroy() - def __priorities_changed(self): """ Return True if the tag priorities have changed else return False. @@ -384,11 +394,7 @@ class OrganizeTagsDialog: Create a dialog box to organize tags. """ # pylint: disable-msg=E1101 - title = _("%(title)s - Gramps") % {'title': _("Organize Tags")} - top = Gtk.Dialog(title) - top.set_default_size(400, 350) - top.set_modal(True) - top.set_transient_for(self.parent_window) + top = Gtk.Dialog(parent=self.parent_window) top.vbox.set_spacing(5) label = Gtk.Label(label='%s' % _("Organize Tags")) @@ -429,7 +435,6 @@ class OrganizeTagsDialog: bbox.add(edit) bbox.add(remove) box.pack_start(bbox, 0, 0, 5) - top.show_all() return top def cb_up_clicked(self, obj): @@ -452,8 +457,7 @@ class OrganizeTagsDialog: """ tag = Tag() tag.set_priority(self.db.get_number_of_tags()) - edit_dialog = EditTag(self.db, top, tag) - edit_dialog.run() + EditTag(self.db, self.uistate, self.track, tag) if tag.get_handle(): self.namemodel.add((tag.get_priority(), @@ -470,8 +474,7 @@ class OrganizeTagsDialog: return tag = self.db.get_tag_from_handle(store.get_value(iter_, 1)) - edit_dialog = EditTag(self.db, top, tag) - edit_dialog.run() + EditTag(self.db, self.uistate, self.track, tag) store.set_value(iter_, 2, tag.get_name()) store.set_value(iter_, 3, tag.get_color()) @@ -492,7 +495,7 @@ class OrganizeTagsDialog: "removed from all objects in the database."), _("Yes"), _("No"), - parent=self.parent_window) + parent=self.window) prompt = yes_no.run() if prompt: @@ -543,23 +546,39 @@ class OrganizeTagsDialog: # Tag editor # #------------------------------------------------------------------------- -class EditTag: +class EditTag(ManagedWindow): """ A dialog to enable the user to create a new tag. """ - def __init__(self, db, parent_window, tag): - self.parent_window = parent_window - self.db = db + def __init__(self, db, uistate, track, tag): self.tag = tag + if self.tag.get_handle(): + self.title = _('Tag: %s') % self.tag.get_name() + else: + self.title = _('New Tag') + ManagedWindow.__init__(self, uistate, track, self.__class__, modal=True) + # the self.top.run() below makes Gtk make it modal, so any change to + # the previous line's "modal" would require that line to be changed + self.db = db self.entry = None self.color = None self.top = self._create_dialog() + self.set_window(self.top, None, self.title) + self.setup_configs('interface.edittag', 320, 100) + self.show() + self.run() + self.close() + + def build_menu_names(self, obj): # this is meaningless while it's modal + return (self.title, None) def run(self): """ Run the dialog and return the result. """ while True: + # the self.top.run() makes Gtk make it modal, so any change to that + # line would require the ManagedWindow.__init__ to be changed also response = self.top.run() if response == Gtk.ResponseType.HELP: display_help(webpage=WIKI_HELP_PAGE, @@ -569,7 +588,6 @@ class EditTag: if response == Gtk.ResponseType.OK: self._save() - self.top.destroy() def _save(self): """ @@ -585,7 +603,7 @@ class EditTag: if not self.tag.get_name(): ErrorDialog(_("Cannot save tag"), _("The tag name cannot be empty"), - parent=self.parent_window) + parent=self.window) return if not self.tag.get_handle(): @@ -604,14 +622,7 @@ class EditTag: Create a dialog box to enter a new tag. """ # pylint: disable-msg=E1101 - if self.tag.get_handle(): - title = _('Tag: %s') % self.tag.get_name() - else: - title = _('New Tag') - top = Gtk.Dialog(_("%(title)s - Gramps") % {'title': title}) - top.set_default_size(300, 100) - top.set_modal(True) - top.set_transient_for(self.parent_window) + top = Gtk.Dialog(parent=self.parent_window) top.vbox.set_spacing(5) hbox = Gtk.Box() @@ -633,5 +644,4 @@ class EditTag: top.add_button(_('_Help'), Gtk.ResponseType.HELP) top.add_button(_('_Cancel'), Gtk.ResponseType.CANCEL) top.add_button(_('_OK'), Gtk.ResponseType.OK) - top.show_all() return top From 3ee28584cbc4d20c537f8fe2a9782e3271c69933 Mon Sep 17 00:00:00 2001 From: Paul Franklin Date: Wed, 11 Jan 2017 04:22:29 -0800 Subject: [PATCH 05/10] tweak sqlite3 info typeout to conform, only output sometimes --- gramps/grampsapp.py | 9 +++++---- gramps/gui/aboutdialog.py | 9 ++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/gramps/grampsapp.py b/gramps/grampsapp.py index 3e7feb5df..8244e5c02 100644 --- a/gramps/grampsapp.py +++ b/gramps/grampsapp.py @@ -399,10 +399,11 @@ def show_settings(): print(' version : %s' % bsddb_str) print(' db version : %s' % bsddb_db_str) print(' location : %s' % bsddb_location_str) - print(' sqlite3 :') - print(' version : %s' % sqlite3_version_str) - print(' py version : %s' % sqlite3_py_version_str) - print(' location : %s' % sqlite3_location_str) + if __debug__: + print(' sqlite3 :') + print(' version : %s' % sqlite3_version_str) + print(' py version : %s' % sqlite3_py_version_str) + print(' location : %s' % sqlite3_location_str) print('') def run(): diff --git a/gramps/gui/aboutdialog.py b/gramps/gui/aboutdialog.py index 246d34bb7..c650087cf 100644 --- a/gramps/gui/aboutdialog.py +++ b/gramps/gui/aboutdialog.py @@ -132,19 +132,22 @@ class GrampsAboutDialog(Gtk.AboutDialog): operatingsystem = sys.platform distribution = " " + sqlite = '' + if __debug__: + sqlite = "sqlite: %s (%s)\n" % (sqlite3_version_str, + sqlite3_py_version_str) + return (("\n\n" + "GRAMPS: %s \n" + "Python: %s \n" + "BSDDB: %s \n" + - "sqlite: %s (%s)\n" + + sqlite + "LANG: %s\n" + "OS: %s\n" + "Distribution: %s") % (ellipses(str(VERSION)), ellipses(str(sys.version).replace('\n','')), BSDDB_STR, - sqlite3_version_str, - sqlite3_py_version_str, ellipses(get_env_var('LANG','')), ellipses(operatingsystem), ellipses(distribution))) From 8f79b0adbb9e0c7f2dc018e65b1b2c301a818c0a Mon Sep 17 00:00:00 2001 From: prculley Date: Thu, 12 Jan 2017 10:54:52 -0600 Subject: [PATCH 06/10] Fix AddMedia to use updated ManagedWindow modal parameter This was the only Gramps code to use the old ManagedWindow modal_call method. --- gramps/gui/editors/addmedia.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gramps/gui/editors/addmedia.py b/gramps/gui/editors/addmedia.py index 33ac8646d..d1885f478 100644 --- a/gramps/gui/editors/addmedia.py +++ b/gramps/gui/editors/addmedia.py @@ -88,7 +88,7 @@ class AddMedia(ManagedWindow): The media is updated with the information, and on save, the callback function is called """ - ManagedWindow.__init__(self, uistate, track, self) + ManagedWindow.__init__(self, uistate, track, self, modal=True) self.dbase = dbstate.db self.obj = media @@ -140,7 +140,6 @@ class AddMedia(ManagedWindow): section=WIKI_HELP_SEC)) self.cancel_button.connect('clicked', self.close) self.show() - self.modal_call() def build_menu_names(self, obj): """ @@ -192,6 +191,7 @@ class AddMedia(ManagedWindow): self._cleanup_on_exit() if self.callback: self.callback(self.obj) + self.close() def on_name_changed(self, *obj): """ From 8f494a683f8cc560cdd9b8cff03deb6a77b9265c Mon Sep 17 00:00:00 2001 From: prculley Date: Thu, 12 Jan 2017 10:57:57 -0600 Subject: [PATCH 07/10] Remove unused ManagedWindow modal_call method This was used only once in AddMedia, which has been upgraded to use the ManagedWindow "modal=" parameter on init instead. --- gramps/gui/managedwindow.py | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/gramps/gui/managedwindow.py b/gramps/gui/managedwindow.py index 1f784b4aa..d5ad05e6f 100644 --- a/gramps/gui/managedwindow.py +++ b/gramps/gui/managedwindow.py @@ -533,39 +533,6 @@ class ManagedWindow: self.opened = True self.window.show_all() - def modal_call(self, after_ok_func=None): - """ - This is deprecated; use the 'modal=True' on the ManagedWindow - initialization for new work. - - Method to do modal run of the ManagedWindow. - Connect the OK button to a method that checks if all is ok, - Do not call close, close is called here. - (if not ok, do self.window.run() to obtain new response ) - TODO: remove close here and do close in ReportDialog, - this can only be done, once all methods use modal_call() - instead of their own implementation - Connect Cancel to do close, delete event is connected to close - here in ManagedWindow. - Do not generete RESPONSE_OK/CANCEL/DELETE_EVENT on button clicks - of other buttons - after_ok_func is called on ok click in this method - """ - #self.show() - while True: - response = self.window.run() - if response == Gtk.ResponseType.OK: - # dialog will be closed by connect, now continue work while - # rest of dialog is unresponsive, release when finished - self.close() - if after_ok_func is not None: - after_ok_func() - break - elif (response == Gtk.ResponseType.DELETE_EVENT or - response == Gtk.ResponseType.CANCEL): - # connect buttons generating this to a close call - break - def close(self, *obj): """ Close itself. From dedb5122cb682da069d2d23e25f2ea3b0d54f094 Mon Sep 17 00:00:00 2001 From: romjerome Date: Sat, 14 Jan 2017 09:44:17 +0100 Subject: [PATCH 08/10] 9899: try to get labels on Family according to status --- gramps/gen/config.py | 2 ++ gramps/gen/plug/report/utils.py | 26 +++++++++++++++++++ gramps/gui/configure.py | 8 ++++++ .../gui/editors/displaytabs/eventembedlist.py | 5 ++-- gramps/gui/editors/editfamily.py | 22 +++++++++++----- .../filters/sidebar/_familysidebarfilter.py | 5 ++-- gramps/gui/glade/editfamily.glade | 6 ++--- gramps/gui/merge/mergeperson.py | 5 ++-- gramps/gui/selectors/selectfamily.py | 5 ++-- gramps/gui/utils.py | 25 ++++++++++++++++++ gramps/gui/widgets/reorderfam.py | 5 ++-- gramps/plugins/textreport/familygroup.py | 23 ++++++++++++++-- gramps/plugins/textreport/tagreport.py | 4 +-- gramps/plugins/view/familyview.py | 8 +++--- gramps/plugins/view/geofamclose.py | 6 +++-- gramps/plugins/view/geofamily.py | 6 +++-- gramps/plugins/view/relview.py | 7 ++--- gramps/plugins/webreport/narrativeweb.py | 4 +-- 18 files changed, 135 insertions(+), 37 deletions(-) diff --git a/gramps/gen/config.py b/gramps/gen/config.py index 098c9f6b7..2c82b49a7 100644 --- a/gramps/gen/config.py +++ b/gramps/gen/config.py @@ -269,6 +269,8 @@ register('preferences.use-last-view', False) register('preferences.last-view', '') register('preferences.last-views', []) register('preferences.family-relation-type', 3) # UNKNOWN +register('preferences.father-label', "%s" % _("Father")) +register('preferences.mother-label', "%s" % _("Mother")) register('preferences.age-display-precision', 1) register('preferences.color-gender-male-alive', '#b8cee6') register('preferences.color-gender-male-death', '#b8cee6') diff --git a/gramps/gen/plug/report/utils.py b/gramps/gen/plug/report/utils.py index 796c0b058..8f4282553 100644 --- a/gramps/gen/plug/report/utils.py +++ b/gramps/gen/plug/report/utils.py @@ -40,10 +40,12 @@ import os #------------------------------------------------------------------------ from ...const import GRAMPS_LOCALE as glocale _ = glocale.translation.gettext +from gramps.gen.config import config from ...datehandler import get_date from ...display.place import displayer as _pd from ...utils.file import media_path_full from ..docgen import IndexMark, INDEX_TYPE_ALP +from ...relationship import get_relationship_calculator # _T_ is a gramps-defined keyword -- see po/update_po.py and po/genpot.sh def _T_(value): @@ -392,3 +394,27 @@ def get_family_filters(database, family, the_filters = [all_families, d_fams, ans] the_filters.extend(CustomFilters.get_filters('Family')) return the_filters + +def parents_labels(db, family, glocale): + """ + Get the label for parent + """ + father = db.get_person_from_handle(family.get_father_handle()) + mother = db.get_person_from_handle(family.get_mother_handle()) + + rel_father = config.get("preferences.father-label") + rel_mother = config.get("preferences.mother-label") + + if len(family.get_child_ref_list()) > 0: + rel_father = _('Father') + rel_mother = _('Mother') + if father.gender == 0: + rel_father = rel_mother + if mother.gender == 1: + rel_mother = rel_father + else: + rc = get_relationship_calculator(True, glocale) + rel_father = rc.get_one_relationship(db, mother, father) + rel_mother = rc.get_one_relationship(db, father, mother) + + return [rel_father[0].upper()+rel_father[1:].lower(), rel_mother[0].upper()+rel_mother[1:].lower()] diff --git a/gramps/gui/configure.py b/gramps/gui/configure.py index da941f4bc..024081e8f 100644 --- a/gramps/gui/configure.py +++ b/gramps/gui/configure.py @@ -1072,6 +1072,14 @@ class GrampsPreferences(ConfigureDialog): grid.attach(obox, 1, row, 2, 1) row += 1 + father_entry = self.add_entry(grid, _("Label for parent male"), + row, 'preferences.father-label') + row += 1 + + mother_entry = self.add_entry(grid, _("Label for parent female"), + row, 'preferences.mother-label') + row += 1 + #height multiple surname table self.add_pos_int_entry(grid, _('Height multiple surname box (pixels)'), diff --git a/gramps/gui/editors/displaytabs/eventembedlist.py b/gramps/gui/editors/displaytabs/eventembedlist.py index 30e7bcb62..c819fb5c0 100644 --- a/gramps/gui/editors/displaytabs/eventembedlist.py +++ b/gramps/gui/editors/displaytabs/eventembedlist.py @@ -35,6 +35,7 @@ from gi.repository import GLib #------------------------------------------------------------------------- from gramps.gen.const import GRAMPS_LOCALE as glocale _ = glocale.translation.gettext +from gramps.gen.config import config from gramps.gen.lib import Event, EventRef, EventRoleType, EventType from gramps.gen.errors import WindowActiveError from ...ddtargets import DdTargets @@ -57,8 +58,8 @@ class EventEmbedList(DbGUIElement, GroupEmbeddedList): _WORKGROUP = EventRefModel._ROOTINDEX _WORKNAME = _("Family") - _FATHNAME = _("Father") - _MOTHNAME = _("Mother") + _FATHNAME = config.get("preferences.father-label") + _MOTHNAME = config.get("preferences.mother-label") _MSG = { 'add' : _('Add a new family event'), diff --git a/gramps/gui/editors/editfamily.py b/gramps/gui/editors/editfamily.py index 5d8d5e702..8e97a72a3 100644 --- a/gramps/gui/editors/editfamily.py +++ b/gramps/gui/editors/editfamily.py @@ -79,6 +79,7 @@ from gramps.gen.utils.db import (get_birth_or_fallback, get_death_or_fallback, get_marriage_or_fallback, preset_name, family_name) from ..selectors import SelectorFactory from gramps.gen.utils.id import create_id +from ..utils import parents_labels from gramps.gen.const import URL_MANUAL_SECT1 #------------------------------------------------------------------------- @@ -515,6 +516,9 @@ class EditFamily(EditPrimary): # FIXME: remove if we can use show() self.window.show_all = self.window.show + self.father_label = self.top.get_object('label589') + self.mother_label = self.top.get_object('label574') + self.fbirth = self.top.get_object('fbirth') self.fdeath = self.top.get_object('fdeath') self.fbirth_label = self.top.get_object('label578') @@ -533,9 +537,9 @@ class EditFamily(EditPrimary): self.mbutton_del = self.top.get_object('mbutton_del') self.mbutton_edit = self.top.get_object('mbutton_edit') - self.mbutton_index.set_tooltip_text(_("Select a person as the mother")) - self.mbutton_add.set_tooltip_text(_("Add a new person as the mother")) - self.mbutton_del.set_tooltip_text(_("Remove the person as the mother")) + self.mbutton_index.set_tooltip_text(_("Select a woman")) + self.mbutton_add.set_tooltip_text(_("Add a woman")) + self.mbutton_del.set_tooltip_text(_("Remove the person as woman")) self.mbutton_edit.connect('button-press-event', self.edit_mother) self.mbutton_edit.connect('key-press-event', self.edit_mother) @@ -548,9 +552,9 @@ class EditFamily(EditPrimary): self.fbutton_del = self.top.get_object('fbutton_del') self.fbutton_edit = self.top.get_object('fbutton_edit') - self.fbutton_index.set_tooltip_text(_("Select a person as the father")) - self.fbutton_add.set_tooltip_text(_("Add a new person as the father")) - self.fbutton_del.set_tooltip_text(_("Remove the person as the father")) + self.fbutton_index.set_tooltip_text(_("Select a man")) + self.fbutton_add.set_tooltip_text(_("Add a man")) + self.fbutton_del.set_tooltip_text(_("Remove the person as man")) self.fbutton_edit.connect('button-press-event', self.edit_father) self.fbutton_edit.connect('key-press-event', self.edit_father) @@ -679,6 +683,12 @@ class EditFamily(EditPrimary): self.phandles = [_f for _f in self.phandles if _f] + parents = parents_labels(self.db, self.obj) + self.father_label.set_label(parents[0][0].upper()+parents[0][1:].lower()) + self.fbutton_del.set_tooltip_text(_("Remove %s") % parents[0].lower()) + self.mother_label.set_label(parents[1][0].upper()+parents[1][1:].lower()) + self.mbutton_del.set_tooltip_text(_("Remove %s") % parents[1].lower()) + def get_start_date(self): """ Get the start date for a family, usually a marriage date, or diff --git a/gramps/gui/filters/sidebar/_familysidebarfilter.py b/gramps/gui/filters/sidebar/_familysidebarfilter.py index 6a82ca3a6..9e2932942 100644 --- a/gramps/gui/filters/sidebar/_familysidebarfilter.py +++ b/gramps/gui/filters/sidebar/_familysidebarfilter.py @@ -40,6 +40,7 @@ from gi.repository import Gtk # #------------------------------------------------------------------------- from ... import widgets +from gramps.gen.config import config from gramps.gen.lib import Event, EventType, Family, FamilyRelType from .. import build_filter_model from . import SidebarFilter @@ -109,8 +110,8 @@ class FamilySidebarFilter(SidebarFilter): self.rtype.get_child().set_width_chars(5) self.add_text_entry(_('ID'), self.filter_id) - self.add_text_entry(_('Father'), self.filter_father) - self.add_text_entry(_('Mother'), self.filter_mother) + self.add_text_entry(config.get("preferences.father-label"), self.filter_father) + self.add_text_entry(config.get("preferences.mother-label"), self.filter_mother) self.add_text_entry(_('Child'), self.filter_child) self.add_entry(_('Relationship'), self.rtype) self.add_entry(_('Family Event'), self.etype) diff --git a/gramps/gui/glade/editfamily.glade b/gramps/gui/glade/editfamily.glade index a634982e5..1f5f507e7 100644 --- a/gramps/gui/glade/editfamily.glade +++ b/gramps/gui/glade/editfamily.glade @@ -157,7 +157,6 @@ True False start - Father/partner1 @@ -189,7 +188,7 @@ - Father + Father, Partner, Spouse @@ -435,7 +434,6 @@ True False start - Mother/partner2 @@ -467,7 +465,7 @@ - Mother + Mother, Partner, Spouse diff --git a/gramps/gui/merge/mergeperson.py b/gramps/gui/merge/mergeperson.py index f54e51527..ce1b2a4f7 100644 --- a/gramps/gui/merge/mergeperson.py +++ b/gramps/gui/merge/mergeperson.py @@ -38,6 +38,7 @@ from gi.repository import Pango #------------------------------------------------------------------------- from gramps.gen.const import GRAMPS_LOCALE as glocale _ = glocale.translation.sgettext +from gramps.gen.config import config from gramps.gen.plug.report import utils from gramps.gen.display.name import displayer as name_displayer from gramps.gen.display.place import displayer as place_displayer @@ -228,10 +229,10 @@ class MergePerson(ManagedWindow): KEYVAL % {'key': _('Family ID'), 'value': gid}) if fname: self.add(tobj, indent, - KEYVAL % {'key': _('Father'), 'value': fname}) + KEYVAL % {'key': config.get("preferences.father-label"), 'value': fname}) if mname: self.add(tobj, indent, - KEYVAL % {'key': _('Mother'), 'value': mname}) + KEYVAL % {'key': config.get("preferences.mother-label"), 'value': mname}) else: self.add(tobj, normal, _("No parents found")) diff --git a/gramps/gui/selectors/selectfamily.py b/gramps/gui/selectors/selectfamily.py index f5c7c4969..caa378a11 100644 --- a/gramps/gui/selectors/selectfamily.py +++ b/gramps/gui/selectors/selectfamily.py @@ -32,6 +32,7 @@ #------------------------------------------------------------------------- from gramps.gen.const import GRAMPS_LOCALE as glocale _ = glocale.translation.sgettext +from gramps.gen.config import config from ..views.treemodels import FamilyModel from .baseselector import BaseSelector from gramps.gui.display import display_help @@ -67,8 +68,8 @@ class SelectFamily(BaseSelector): def get_column_titles(self): return [ (_('ID'), 75, BaseSelector.TEXT, 0), - (_('Father'), 200, BaseSelector.TEXT, 1), - (_('Mother'), 200, BaseSelector.TEXT, 2), + (config.get("preferences.father-label"), 200, BaseSelector.TEXT, 1), + (config.get("preferences.mother-label"), 200, BaseSelector.TEXT, 2), (_('Last Change'), 150, BaseSelector.TEXT, 7), ] diff --git a/gramps/gui/utils.py b/gramps/gui/utils.py index f78acb679..f3c2e89da 100644 --- a/gramps/gui/utils.py +++ b/gramps/gui/utils.py @@ -57,6 +57,7 @@ from gramps.gen.constfunc import has_display, is_quartz, mac, win from gramps.gen.config import config from gramps.gen.plug.utils import available_updates from gramps.gen.errors import WindowActiveError +from gramps.gen.relationship import RelationshipCalculator #------------------------------------------------------------------------- # @@ -685,3 +686,27 @@ def text_to_clipboard(text): clipboard = Gtk.Clipboard.get_for_display(Gdk.Display.get_default(), Gdk.SELECTION_CLIPBOARD) clipboard.set_text(text, -1) + +def parents_labels(db, family): + """ + Get the label for parent + """ + father = db.get_person_from_handle(family.get_father_handle()) + mother = db.get_person_from_handle(family.get_mother_handle()) + + rel_father = config.get("preferences.father-label") + rel_mother = config.get("preferences.mother-label") + + if len(family.get_child_ref_list()) > 0: + rel_father = _('Father') + rel_mother = _('Mother') + if father.gender == 0: + rel_father = rel_mother + if mother.gender == 1: + rel_mother = rel_father + else: + rc = RelationshipCalculator() + rel_father = rc.get_one_relationship(db, mother, father) + rel_mother = rc.get_one_relationship(db, father, mother) + + return [rel_father.split()[-1], rel_mother.split()[-1]] diff --git a/gramps/gui/widgets/reorderfam.py b/gramps/gui/widgets/reorderfam.py index 03e70d92e..fb7be3347 100644 --- a/gramps/gui/widgets/reorderfam.py +++ b/gramps/gui/widgets/reorderfam.py @@ -45,6 +45,7 @@ _LOG = logging.getLogger("gui.widgets.reorderfam") #------------------------------------------------------------------------- from gramps.gen.const import GRAMPS_LOCALE as glocale _ = glocale.translation.sgettext +from gramps.gen.config import config from gramps.gen.db import DbTxn from ..listmodel import ListModel from ..managedwindow import ManagedWindow @@ -81,8 +82,8 @@ class Reorder(ManagedWindow): self.ptree = xml.get_object('ptree') self.pmodel = ListModel(self.ptree, - [(_('Father'), -1, 200), - (_('Mother'), -1, 200), + [(config.get("preferences.father-label"), -1, 200), + (config.get("preferences.mother-label"), -1, 200), ('', -1, 0)]) self.ftree = xml.get_object('ftree') diff --git a/gramps/plugins/textreport/familygroup.py b/gramps/plugins/textreport/familygroup.py index 49ffd85bd..de4cc8409 100644 --- a/gramps/plugins/textreport/familygroup.py +++ b/gramps/plugins/textreport/familygroup.py @@ -38,6 +38,7 @@ from functools import partial #------------------------------------------------------------------------ from gramps.gen.const import GRAMPS_LOCALE as glocale _ = glocale.translation.sgettext +from gramps.gen.config import config from gramps.gen.lib import EventRoleType, EventType, NoteType, Person from gramps.gen.plug.menu import BooleanOption, FamilyOption, FilterOption from gramps.gen.plug.report import Report @@ -616,8 +617,26 @@ class FamilyGroup(Report): self.doc.end_paragraph() family = self.db.get_family_from_handle(family_handle) + parents = utils.parents_labels(self.db, family, self._locale) - self.dump_parent(self._("Husband"), family.get_father_handle()) + rel_father = config.get("preferences.father-label") + rel_mother = config.get("preferences.mother-label") + + nb_children = len(family.get_child_ref_list()) + father = self.db.get_person_from_handle(family.get_father_handle()) + mother = self.db.get_person_from_handle(family.get_mother_handle()) + if nb_children > 0: + rel_father = self._("Father") + rel_mother = self._("Mother") + if father.gender == 0: + rel_father = rel_mother + if mother.gender == 1: + rel_mother = rel_father + else: + rel_father = parents[0] + rel_mother = parents[1] + + self.dump_parent(rel_father, family.get_father_handle()) self.doc.start_paragraph("FGR-blank") self.doc.end_paragraph() @@ -626,7 +645,7 @@ class FamilyGroup(Report): self.doc.start_paragraph("FGR-blank") self.doc.end_paragraph() - self.dump_parent(self._("Wife"), family.get_mother_handle()) + self.dump_parent(rel_mother, family.get_mother_handle()) length = len(family.get_child_ref_list()) if length > 0: diff --git a/gramps/plugins/textreport/tagreport.py b/gramps/plugins/textreport/tagreport.py index 4d47efe00..11c17e2dd 100644 --- a/gramps/plugins/textreport/tagreport.py +++ b/gramps/plugins/textreport/tagreport.py @@ -245,13 +245,13 @@ class TagReport(Report): self.doc.start_cell('TR-TableCell') self.doc.start_paragraph('TR-Normal-Bold') - self.doc.write_text(self._("Father")) + self.doc.write_text(self._("Father, Partner, Spouse")) self.doc.end_paragraph() self.doc.end_cell() self.doc.start_cell('TR-TableCell') self.doc.start_paragraph('TR-Normal-Bold') - self.doc.write_text(self._("Mother")) + self.doc.write_text(self._("Mother, Partner, Spouse")) self.doc.end_paragraph() self.doc.end_cell() diff --git a/gramps/plugins/view/familyview.py b/gramps/plugins/view/familyview.py index 24c3c203e..6503b497c 100644 --- a/gramps/plugins/view/familyview.py +++ b/gramps/plugins/view/familyview.py @@ -77,8 +77,8 @@ class FamilyView(ListView): # column definitions COLUMNS = [ (_('ID'), TEXT, None), - (_('Father'), TEXT, None), - (_('Mother'), TEXT, None), + (config.get("preferences.father-label"), TEXT, None), + (config.get("preferences.mother-label"), TEXT, None), (_('Relationship'), TEXT, None), (_('Marriage Date'), MARKUP, None), (_('Private'), ICON, 'gramps-lock'), @@ -202,9 +202,9 @@ class FamilyView(ListView): self.all_action = Gtk.ActionGroup(name=self.title + "/FamilyAll") self.all_action.add_actions([ - ('MakeFatherActive', None, _("Make Father Active Person"), + ('MakeFatherActive', None, _("Make %s Active Person") % config.get("preferences.father-label"), None, None, self._make_father_active), - ('MakeMotherActive', None, _("Make Mother Active Person"), + ('MakeMotherActive', None, _("Make %s Active Person") % config.get("preferences.mother-label"), None, None, self._make_mother_active), ('QuickReport', None, _("Quick View"), None, None, None), ]) diff --git a/gramps/plugins/view/geofamclose.py b/gramps/plugins/view/geofamclose.py index d0c81ea4e..b5a9fb5a3 100644 --- a/gramps/plugins/view/geofamclose.py +++ b/gramps/plugins/view/geofamclose.py @@ -605,7 +605,8 @@ class GeoFamClose(GeoGraphyView): if handle: father = dbstate.db.get_person_from_handle(handle) if father: - comment = _("Father : %(id)s : %(name)s") % { + comment = _("%(father)s : %(id)s : %(name)s") % { + 'father': config.get("preferences.father-label"), 'id': father.gramps_id, 'name': _nd.display(father)} self._createmap_for_one_person(father, color, @@ -614,7 +615,8 @@ class GeoFamClose(GeoGraphyView): if handle: mother = dbstate.db.get_person_from_handle(handle) if mother: - comment = _("Mother : %(id)s : %(name)s") % { + comment = _("%(mother)s : %(id)s : %(name)s") % { + 'mother': config.get("preferences.mother-label"), 'id': mother.gramps_id, 'name': _nd.display(mother)} self._createmap_for_one_person(mother, color, diff --git a/gramps/plugins/view/geofamily.py b/gramps/plugins/view/geofamily.py index 78825118b..0dd72c90a 100644 --- a/gramps/plugins/view/geofamily.py +++ b/gramps/plugins/view/geofamily.py @@ -342,7 +342,8 @@ class GeoFamily(GeoGraphyView): if handle: father = dbstate.db.get_person_from_handle(handle) if father: - comment = _("Father : %(id)s : %(name)s") % { + comment = _("%(father)s : %(id)s : %(name)s") % { + 'father': config.get("preferences.father-label"), 'id': father.gramps_id, 'name': _nd.display(father)} self._createpersonmarkers(dbstate, father, @@ -351,7 +352,8 @@ class GeoFamily(GeoGraphyView): if handle: mother = dbstate.db.get_person_from_handle(handle) if mother: - comment = _("Mother : %(id)s : %(name)s") % { + comment = _("%(mother)s : %(id)s : %(name)s") % { + 'mother': config.get("preferences.mother-label"), 'id': mother.gramps_id, 'name': _nd.display(mother)} self._createpersonmarkers(dbstate, mother, diff --git a/gramps/plugins/view/relview.py b/gramps/plugins/view/relview.py index 9caf7970b..28e3d19db 100644 --- a/gramps/plugins/view/relview.py +++ b/gramps/plugins/view/relview.py @@ -67,7 +67,7 @@ from gramps.gen.display.name import displayer as name_displayer from gramps.gen.display.place import displayer as place_displayer from gramps.gen.utils.file import media_path_full from gramps.gen.utils.alive import probably_alive -from gramps.gui.utils import open_file_with_default_application +from gramps.gui.utils import open_file_with_default_application, parents_labels from gramps.gen.datehandler import displayer, get_date from gramps.gen.utils.thumbnails import get_thumbnail_image from gramps.gen.config import config @@ -896,8 +896,9 @@ class RelationshipView(NavigationView): self.row += 1 # now advance it else: self.write_label(_("%s:") % _('Parents'), family, True, person) - self.write_person(_('Father'), family.get_father_handle()) - self.write_person(_('Mother'), family.get_mother_handle()) + parents = parents_labels(self.dbstate.db, family) + self.write_person(parents[0][0].upper()+parents[0][1:].lower(), family.get_father_handle()) + self.write_person(parents[1][0].upper()+parents[1][1:].lower(), family.get_mother_handle()) if self.show_siblings: active = self.get_active() diff --git a/gramps/plugins/webreport/narrativeweb.py b/gramps/plugins/webreport/narrativeweb.py index 855edea19..82a01dc44 100644 --- a/gramps/plugins/webreport/narrativeweb.py +++ b/gramps/plugins/webreport/narrativeweb.py @@ -7436,7 +7436,7 @@ class PersonPages(BasePage): # The parent may not be birth father in ths family, because it # may be a step family. However, it will be odd to display the # parent as anything other than "Father" - reln = self._("Father") + reln = self._("Father, Partner, Spouse") else: # Stepfather may not always be quite right (for example, it may # actually be StepFather-in-law), but it is too expensive to @@ -7450,7 +7450,7 @@ class PersonPages(BasePage): mother_handle = family.get_mother_handle() if mother_handle: if mother_handle == birthmother: - reln = self._("Mother") + reln = self._("Mother, Partner, Spouse"") else: reln = self._("Stepmother") trow = Html("tr") + (self.display_parent(mother_handle, reln, None)) From 0633930667fe3422f08683dbf5289cfd4c041d09 Mon Sep 17 00:00:00 2001 From: romjerome Date: Sat, 14 Jan 2017 09:55:59 +0100 Subject: [PATCH 09/10] 9899: tweak adjustement where one could switch locations for both parents this could be a specific case, so for more security, use hardcoded string --- gramps/gen/plug/report/utils.py | 2 +- gramps/gui/utils.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gramps/gen/plug/report/utils.py b/gramps/gen/plug/report/utils.py index 8f4282553..656bc6ed0 100644 --- a/gramps/gen/plug/report/utils.py +++ b/gramps/gen/plug/report/utils.py @@ -411,7 +411,7 @@ def parents_labels(db, family, glocale): if father.gender == 0: rel_father = rel_mother if mother.gender == 1: - rel_mother = rel_father + rel_mother = _('Father') else: rc = get_relationship_calculator(True, glocale) rel_father = rc.get_one_relationship(db, mother, father) diff --git a/gramps/gui/utils.py b/gramps/gui/utils.py index f3c2e89da..db95a02b1 100644 --- a/gramps/gui/utils.py +++ b/gramps/gui/utils.py @@ -703,7 +703,7 @@ def parents_labels(db, family): if father.gender == 0: rel_father = rel_mother if mother.gender == 1: - rel_mother = rel_father + rel_mother = _('Father') else: rc = RelationshipCalculator() rel_father = rc.get_one_relationship(db, mother, father) From fe763b7490c69a331f3931a488294549c3ee29e3 Mon Sep 17 00:00:00 2001 From: romjerome Date: Sat, 14 Jan 2017 10:01:42 +0100 Subject: [PATCH 10/10] 9899: polish; gen.lib.person arlready called, make test on gender more clear --- gramps/gui/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gramps/gui/utils.py b/gramps/gui/utils.py index db95a02b1..929756c0f 100644 --- a/gramps/gui/utils.py +++ b/gramps/gui/utils.py @@ -700,9 +700,9 @@ def parents_labels(db, family): if len(family.get_child_ref_list()) > 0: rel_father = _('Father') rel_mother = _('Mother') - if father.gender == 0: + if father.gender == Person.FEMALE: rel_father = rel_mother - if mother.gender == 1: + if mother.gender == Person.MALE: rel_mother = _('Father') else: rc = RelationshipCalculator()