diff --git a/gramps/src/AbiWordDoc.py b/gramps/src/AbiWordDoc.py index 87cca9be5..f29bf2c13 100644 --- a/gramps/src/AbiWordDoc.py +++ b/gramps/src/AbiWordDoc.py @@ -17,7 +17,15 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +""" +Provides a TextDoc based interface to the AbiWord document format. +""" +#------------------------------------------------------------------------- +# +# Imported Modules +# +#------------------------------------------------------------------------- import os import base64 @@ -25,26 +33,40 @@ from TextDoc import * from latin_utf8 import latin_to_utf8 import const import string -import utils -cnv = utils.fl2txt +from utils import fl2txt +#------------------------------------------------------------------------- +# +# Attemp to import the Python Imaging Library +# +#------------------------------------------------------------------------- try: import PIL.Image no_pil = 0 except: no_pil = 1 - +#------------------------------------------------------------------------- +# +# Class Definitions +# +#------------------------------------------------------------------------- class AbiWordDoc(TextDoc): + """AbiWord document generator. Inherits from the TextDoc generic + document interface class.""" def __init__(self,styles,type,orientation): + """Initializes the AbiWordDoc class, calling the __init__ routine + of the parent TextDoc class""" TextDoc.__init__(self,styles,type,orientation) self.f = None self.level = 0 self.new_page = 0 def open(self,filename): - + """Opens the document, writing the necessary header information. + AbiWord uses an XML format, so the document format is pretty easy + to understand""" if filename[-4:] != ".abw": self.filename = "%s.abw" % filename else: @@ -59,19 +81,20 @@ class AbiWordDoc(TextDoc): self.f.write('orientation="portrait" ') else: self.f.write('orientation="landscape" ') - self.f.write('width="%s" ' % cnv("%.4f",self.width/2.54)) - self.f.write('height="%s" ' % cnv("%.4f",self.height/2.54)) + self.f.write('width="%s" ' % fl2txt("%.4f",self.width/2.54)) + self.f.write('height="%s" ' % fl2txt("%.4f",self.height/2.54)) self.f.write('units="inch" page-scale="1.000000"/>\n') self.f.write('
\n') def close(self): + """Write the trailing information and closes the file""" self.f.write('
\n') if len(self.photo_list) > 0: self.f.write('\n') @@ -119,8 +142,8 @@ class AbiWordDoc(TextDoc): self.f.write('' % height) @@ -136,9 +159,9 @@ class AbiWordDoc(TextDoc): self.f.write('text-align:center;') else: self.f.write('text-align:justify;') - rmargin = cnv("%.4f",float(style.get_right_margin())/2.54) - lmargin = cnv("%.4f",float(style.get_left_margin())/2.54) - indent = cnv("%.4f",float(style.get_first_indent())/2.54) + rmargin = fl2txt("%.4f",float(style.get_right_margin())/2.54) + lmargin = fl2txt("%.4f",float(style.get_left_margin())/2.54) + indent = fl2txt("%.4f",float(style.get_first_indent())/2.54) self.f.write(' margin-right:%sin;' % rmargin) self.f.write(' margin-left:%sin;' % lmargin) self.f.write(' tabstops:%sin/L;' % lmargin) @@ -193,7 +216,7 @@ class AbiWordDoc(TextDoc): self.f.write('; font-style:italic') color = font.get_color() if color != (0,0,0): - self.f.write('; color:%2x%2x%2x' % color) + self.f.write('; color:%02x%02x%02x' % color) if font.get_underline(): self.f.write('; text-decoration:underline') self.f.write('">') @@ -212,7 +235,7 @@ class AbiWordDoc(TextDoc): self.f.write('; font-style:italic') color = font.get_color() if color != (0,0,0): - self.f.write('; color:%2x%2x%2x' % color) + self.f.write('; color:%02x%02x%02x' % color) if font.get_underline(): self.f.write('; text-decoration:underline') self.f.write('">') diff --git a/gramps/src/AddMedia.py b/gramps/src/AddMedia.py index fb7743120..54563c0e1 100644 --- a/gramps/src/AddMedia.py +++ b/gramps/src/AddMedia.py @@ -18,6 +18,10 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +""" +Provides the interface to allow a person to add a media object to the database. +""" + #------------------------------------------------------------------------- # # Standard python modules @@ -124,7 +128,6 @@ class AddMediaObject: see if the file exists. If it does, the imgae is loaded into the preview window. """ - filename = self.file_text.get_text() basename = os.path.basename(filename) (root,ext) = os.path.splitext(basename) diff --git a/gramps/src/AddSpouse.py b/gramps/src/AddSpouse.py index cbe4d3673..1ee1f9013 100644 --- a/gramps/src/AddSpouse.py +++ b/gramps/src/AddSpouse.py @@ -17,6 +17,10 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +""" +The AddSpouse module provides the AddSpouse class that allows the user to +add a new spouse to the active person. +""" #------------------------------------------------------------------------- # diff --git a/gramps/src/AddrEdit.py b/gramps/src/AddrEdit.py index ef3c63e39..1ef115970 100644 --- a/gramps/src/AddrEdit.py +++ b/gramps/src/AddrEdit.py @@ -17,6 +17,10 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +""" +The AddrEdit module provides the AddressEditor class. This provides a +mechanism for the user to edit address information. +""" #------------------------------------------------------------------------- # @@ -33,6 +37,7 @@ import libglade import const import utils import Date +import RelLib from intl import gettext _ = gettext @@ -44,7 +49,7 @@ _ = gettext #------------------------------------------------------------------------- class AddressEditor: """ - Displays a dialog that allows the user to edit a address. + Displays a dialog that allows the user to edit an address. """ def __init__(self,parent,addr): """ @@ -110,7 +115,7 @@ class AddressEditor: def ok_clicked(self,obj): """ Called when the OK button is pressed. Gets data from the - form and updates the Address data structure + form and updates the Address data structure. """ date = self.addr_start.get_text() street = self.street.get_text() @@ -122,7 +127,7 @@ class AddressEditor: priv = self.priv.get_active() if self.addr == None: - self.addr = Address() + self.addr = RelLib.Address() self.addr.setSourceRefList(self.srcreflist) self.parent.plist.append(self.addr) @@ -154,27 +159,7 @@ class AddressEditor: self.check(self.addr.getNote,self.addr.setNote,note) self.check(self.addr.getPrivacy,self.addr.setPrivacy,priv) -# if self.addr.getState() != state: -# self.addr.setState(state) -# self.parent.lists_changed = 1 -# if self.addr.getStreet() != street: -# self.addr.setStreet(street) -# self.parent.lists_changed = 1 -# if self.addr.getCountry() != country: -# self.addr.setCountry(country) -# self.parent.lists_changed = 1 -# if self.addr.getCity() != city: -# self.addr.setCity(city) -# self.parent.lists_changed = 1 -# if self.addr.getPostal() != postal: -# self.addr.setPostal(postal) -# self.parent.lists_changed = 1 -# if self.addr.getNote() != note: -# self.addr.setNote(note) -# self.parent.lists_changed = 1 -# if self.addr.getPrivacy() != priv: -# self.addr.setPrivacy(priv) -# self.parent.lists_changed = 1 - def src_changed(parent): + """Sets the lists_changed flag of the parent object. Used as a callback + to the source editor, so the source editor can indicate a change.""" parent.lists_changed = 1 diff --git a/gramps/src/AttrEdit.py b/gramps/src/AttrEdit.py index 363ffe1c0..200b00688 100644 --- a/gramps/src/AttrEdit.py +++ b/gramps/src/AttrEdit.py @@ -17,6 +17,10 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +""" +The AttrEdit module provides the AddressEditor class. This provides a +mechanism for the user to edit address information. +""" #------------------------------------------------------------------------- # @@ -44,8 +48,18 @@ _ = gettext # #------------------------------------------------------------------------- class AttributeEditor: - + """ + Displays a dialog that allows the user to edit an attribute. + """ def __init__(self,parent,attrib,title,list): + """ + Displays the dialog box. + + parent - The class that called the Address editor. + attrib - The attribute that is to be edited + title - The title of the dialog box + list - list of options for the pop down menu + """ self.parent = parent self.attrib = attrib self.top = libglade.GladeXML(const.dialogFile, "attr_edit") @@ -84,16 +98,20 @@ class AttributeEditor: self.window.set_data("o",self) self.top.signal_autoconnect({ "destroy_passed_object" : utils.destroy_passed_object, - "on_attr_edit_ok_clicked" : self.on_attrib_edit_ok_clicked, + "on_attr_edit_ok_clicked" : self.on_ok_clicked, "on_combo_insert_text" : utils.combo_insert_text, - "on_source_clicked" : self.on_attrib_source_clicked + "on_source_clicked" : self.on_source_clicked }) - def on_attrib_source_clicked(self,obj): + def on_source_clicked(self,obj): + """Displays the SourceSelector, allowing sources to be edited""" Sources.SourceSelector(self.srcreflist,self.parent,src_changed) - def on_attrib_edit_ok_clicked(self,obj): - + def on_ok_clicked(self,obj): + """ + Called when the OK button is pressed. Gets data from the + form and updates the Attribute data structure. + """ type = self.type_field.get_text() value = self.value_field.get_text() note = self.note_field.get_chars(0,-1) @@ -104,28 +122,27 @@ class AttributeEditor: self.attrib.setSourceRefList(self.srcreflist) self.parent.alist.append(self.attrib) - self.update_attrib(type,value,note,priv) + self.update(type,value,note,priv) self.parent.redraw_attr_list() utils.destroy_passed_object(obj) - def update_attrib(self,type,value,note,priv): - - if self.attrib.getType() != const.save_pattr(type): - self.attrib.setType(const.save_pattr(type)) - self.parent.lists_changed = 1 - - if self.attrib.getValue() != value: - self.attrib.setValue(value) - self.parent.lists_changed = 1 - - if self.attrib.getNote() != note: - self.attrib.setNote(note) - self.parent.lists_changed = 1 - - if self.attrib.getPrivacy() != priv: - self.attrib.setPrivacy(priv) + def check(self,get,set,data): + """Compares a data item, updates if necessary, and sets the + parents lists_changed flag""" + if get() != data: + set(data) self.parent.lists_changed = 1 + + def update(self,type,value,note,priv): + """Compares the data items, and updates if necessary""" + ntype = const.save_pattr(type) + self.check(self.attrib.getType,self.attrib.setType,ntype) + self.check(self.attrib.getValue,self.attrib.setValue,value) + self.check(self.attrib.getNote,self.attrib.setNote,note) + self.check(self.attrib.getPrivacy,self.attrib.setPrivacy,priv) def src_changed(parent): + """Sets the lists_changed flag of the parent object. Used as a callback + to the source editor, so the source editor can indicate a change.""" parent.lists_changed = 1 diff --git a/gramps/src/Calendar.py b/gramps/src/Calendar.py index 68e274e0e..0671bf155 100644 --- a/gramps/src/Calendar.py +++ b/gramps/src/Calendar.py @@ -61,7 +61,7 @@ _AM9_32_43 = ((15 * _HALAKIM_PER_HOUR) + 589) #------------------------------------------------------------------------- # -# +# Conversion tables # #------------------------------------------------------------------------- monthsPerYear = [ @@ -76,7 +76,7 @@ yearOffset = [ #------------------------------------------------------------------------- # -# +# Tasks # #------------------------------------------------------------------------- @@ -99,6 +99,7 @@ def sdn_to_french(sdn): def sdn_to_gregorian(sdn): + """Converts an SDN number to a gregorial date""" if sdn <= 0: return (0,0,0) @@ -133,7 +134,7 @@ def sdn_to_gregorian(sdn): return (year,month,day) def gregorian_to_sdn(iyear,imonth,iday): - + """Converts a gregorian date to an SDN number""" # check for invalid dates if iyear==0 or iyear<-4714 or imonth<=0 or imonth>12 or iday<=0 or iday>31: return 0 @@ -164,6 +165,7 @@ def gregorian_to_sdn(iyear,imonth,iday): def sdn_to_julian(sdn): + """Converts an SDN number to a Julian date""" if sdn <= 0 : return (0,0,0) @@ -193,6 +195,7 @@ def sdn_to_julian(sdn): return (year,month,day) def julian_to_sdn(iyear,imonth,iday): + """Converts a Julian calendar date to an SDN number""" # check for invalid dates if iyear==0 or iyear<-4713 or imonth<=0 or imonth>12 or iday<=0 or iday>31: @@ -329,6 +332,7 @@ def FindStartOfYear(year): return (pMetonicCycle, pMetonicYear, pMoladDay, pMoladHalakim, pTishri1) def sdn_to_jewish(sdn): + """Converts an SDN number to a Julian calendar date""" if sdn <= _H_SDN_OFFSET : return (0,0,0) @@ -439,6 +443,7 @@ def sdn_to_jewish(sdn): def jewish_to_sdn(year, month, day): + """Converts a Jewish calendar date to an SDN number""" if year <= 0 or day <= 0 or day > 30 : return 0 diff --git a/gramps/src/Date.py b/gramps/src/Date.py index 52a10fafa..e17eae354 100644 --- a/gramps/src/Date.py +++ b/gramps/src/Date.py @@ -461,12 +461,18 @@ class SingleDate: retval = str(self.year) elif self.year == UNDEF: retval = _mname[self.month] - else: - retval = "%s %d" % (_mname[self.month],self.year) + else: + try: + retval = "%s %d" % (_mname[self.month],self.year) + except: + retval = "**** %d %d %d ****" % (self.year,self.month,self.day) elif self.month == UNDEF: retval = str(self.year) else: - month = _mname[self.month] + try: + month = _mname[self.month] + except: + month = "" if self.year == UNDEF: retval = "%s %d, ????" % (month,self.day) else: @@ -830,6 +836,8 @@ class SingleDate: else: self.setMonthVal(matches[1]) self.setYearVal(matches[2]) + if self.getMonth() > 13: + raise Date.Error return 1 match = SingleDate.fmt3.match(text) diff --git a/gramps/src/EditPerson.py b/gramps/src/EditPerson.py index 9de2ee6f6..ee243f594 100644 --- a/gramps/src/EditPerson.py +++ b/gramps/src/EditPerson.py @@ -1222,7 +1222,7 @@ def birth_dates_in_order(list): for i in range(len(list)): child = list[i] bday = child.getBirth().getDateObj() - child_date = sort.build_sort_event(bday) + child_date = sort.build_sort_date(bday) if (child_date == "99999999"): continue if (prev_date <= child_date): # <= allows for twins @@ -1246,13 +1246,13 @@ def reorder_child_list(person, list): return(list) # Build the person's date string once - person_bday = sort.build_sort_event(person.getBirth().getDateObj()) + person_bday = sort.build_sort_date(person.getBirth().getDateObj()) # First, see if the person needs to be moved forward in the list index = list.index(person) target = index for i in range(index-1, -1, -1): - other_bday = sort.build_sort_event(list[i].getBirth().getDateObj()) + other_bday = sort.build_sort_date(list[i].getBirth().getDateObj()) if (other_bday == "99999999"): continue; if (person_bday < other_bday): @@ -1261,7 +1261,7 @@ def reorder_child_list(person, list): # Now try moving to a later position in the list if (target == index): for i in range(index, len(list)): - other_bday = sort.build_sort_event(list[i].getBirth().getDateObj()) + other_bday = sort.build_sort_date(list[i].getBirth().getDateObj()) if (other_bday == "99999999"): continue; if (person_bday > other_bday): diff --git a/gramps/src/Find.py b/gramps/src/Find.py index 1274aac40..7f2f02cd9 100644 --- a/gramps/src/Find.py +++ b/gramps/src/Find.py @@ -50,17 +50,17 @@ class Find: }) self.top = self.xml.get_widget("find") - self.entry = self.xml.get_widget("entry1") - self.combo = self.xml.get_widget("combo") + self.entry = self.xml.get_widget("entry") if Config.autocomp: - self.entry.connect_object("insert-text",utils.combo_insert_text,self.combo) - self.combo.disable_activate() + self.nlist = [("","")] + for n in plist: + n1 = n.getPrimaryName().getName() + n2 = string.lower(n1) + self.nlist.append((n2,n1)) + self.nlist.sort() + self.entry.connect("insert-text",self.insert_text) + self.next = self.xml.get_widget("next") - nlist = [""] - for n in plist: - nlist.append(n.getPrimaryName().getName()) - nlist.sort() - self.combo.set_popdown_strings(nlist) self.top.editable_enters(self.entry) def find_next(self): @@ -133,3 +133,84 @@ class Find: def on_prev_clicked(self,obj): """Callback for dialog box that causes the previous person to be found""" self.find_prev() + + #------------------------------------------------------------------------- + # + # Sets up a delayed (0.005 sec) handler for text completion. Text + # completion cannot be handled directly in this routine because, for + # some reason, the select_region() function doesn't work when called + # from signal handlers. Go figure. + # + # Thanks to iain@nodata.demon.co.uk (in mail from 1999) for the idea + # to use a timer to get away from the problems with signal handlers + # and the select_region function. + # + #------------------------------------------------------------------------- + def insert_text(self,entry,new_text,new_text_len,i_dont_care): + # One time setup to clear selected region when user moves on + if (not entry.get_data("signal_set")): + entry.set_data("signal_set",1) + entry.signal_connect("focus_out_event", self.lost_focus, entry) + + # Nuke the current timer if the user types fast enough + timer = entry.get_data("timer"); + if (timer): + gtk.timeout_remove(timer) + + # Setup a callback timer so we can operate outside of a signal handler + timer = gtk.timeout_add(5, self.timer_callback, entry) + entry.set_data("timer", timer); + + #------------------------------------------------------------------------- + # + # The entry box entry field lost focus. Go clear any selection. Why + # this form of a select_region() call works in a signal handler and + # the other form doesn't is a mystery. + # + #------------------------------------------------------------------------- + def lost_focus(self,entry,a,b): + entry.select_region(0, 0) + + #------------------------------------------------------------------------- + # + # The workhorse routine of file completion. This routine grabs the + # current text of the entry box, and grubs through the list item + # looking for any case insensitive matches. This routine relies on + # public knowledge of the GtkEntry data structure, not on any private + # data. + # + # These three completion routines have only one gramps specific hook, + # and can be easily ported to any program. + # + #------------------------------------------------------------------------- + def timer_callback(self,entry): + # Clear any timer + timer = entry.get_data("timer"); + if (timer): + gtk.timeout_remove(timer) + + # Get the user's text + typed = entry.get_text() + if (not typed): + return + typed_lc = string.lower(typed) + + # Walk the GtkList in the entry box + for nl,n in self.nlist: + if (not nl): + continue + + # If equal, no need to add any text + if (typed_lc == nl): + return + + # If typed text is a substring of the label text, then fill in + # the entry field with the full text (and correcting + # capitalization), and then select all the characters that + # don't match. With the user's enxt keystroke these will be + # replaced if they are incorrect. + if (string.find(nl,typed_lc) == 0): + entry.set_text(n) + entry.set_position(len(typed)) + entry.select_region(len(typed), -1) + return diff --git a/gramps/src/MediaView.py b/gramps/src/MediaView.py index 705bc6f7a..1a0c3738f 100644 --- a/gramps/src/MediaView.py +++ b/gramps/src/MediaView.py @@ -328,7 +328,8 @@ class MediaView: oref.setReference(photo) try: id = photo.getId() - name = RelImage.import_media_object(tfile,self.path,id) + path = self.db.getSavePath() + name = RelImage.import_media_object(tfile,path,id) if name != None and name != "": photo.setPath(name) except: diff --git a/gramps/src/PlaceView.py b/gramps/src/PlaceView.py index b164f1de6..913699580 100644 --- a/gramps/src/PlaceView.py +++ b/gramps/src/PlaceView.py @@ -149,7 +149,6 @@ class PlaceView: for a in self.sort_arrow: a.hide() - arrow = self.sort_arrow[column] if self.sort_col == column: if self.sort_direct == GTK.SORT_DESCENDING: self.sort_direct = GTK.SORT_ASCENDING diff --git a/gramps/src/config.glade b/gramps/src/config.glade index d7ee7041d..a4808a393 100644 --- a/gramps/src/config.glade +++ b/gramps/src/config.glade @@ -2656,7 +2656,7 @@ information. 125,104,74 0,0,0 225,219,197 - 191,191,191 + 225,220,197 255,255,255 gramps.png splash.jpg @@ -2674,7 +2674,7 @@ information. Researcher Information 125,104,74 225,220,197 - 191,191,191 + 225,220,197 gramps.png @@ -3200,7 +3200,7 @@ contribute. Please enjoy using GRAMPS. 225,220,197 - 191,191,191 + 225,220,197 255,255,255 0,0,0 125,104,74 diff --git a/gramps/src/find.glade b/gramps/src/find.glade index 32560f3fd..6c68f8958 100644 --- a/gramps/src/find.glade +++ b/gramps/src/find.glade @@ -152,45 +152,19 @@ - Placeholder - - - - GtkCombo - combo - False - True - False - True - False - + GtkEntry + entry + True + True + True + True + 0 + 10 True True - - - GtkEntry - GtkCombo:entry - entry1 - True - True - - insert_text - on_combo_insert_text - combo - Wed, 12 Dec 2001 01:27:32 GMT - - True - True - 0 - - - - - - Placeholder diff --git a/gramps/src/gramps.desktop b/gramps/src/gramps.desktop index 250f2aa43..5965dacaa 100644 --- a/gramps/src/gramps.desktop +++ b/gramps/src/gramps.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Name=Gramps +Name=Genealogy (Gramps) Name[sv]=Gramps Comment=Genealogy Program Comment[sv]=Ett släktforskningsprogram diff --git a/gramps/src/gramps.png b/gramps/src/gramps.png index d73419a90..5046d7b5b 100644 Binary files a/gramps/src/gramps.png and b/gramps/src/gramps.png differ diff --git a/gramps/src/gramps_main.py b/gramps/src/gramps_main.py index 155daa2d3..4dde76636 100755 --- a/gramps/src/gramps_main.py +++ b/gramps/src/gramps_main.py @@ -1289,8 +1289,8 @@ def redisplay_person_list(person): gender,bday.getQuoteDate(), dday.getQuoteDate(), sort.build_sort_name(name), - sort.build_sort_event(bday), - sort.build_sort_event(dday)]) + sort.build_sort_date(bday), + sort.build_sort_date(dday)]) person_list.set_row_data(0,pos) @@ -1302,8 +1302,8 @@ def redisplay_person_list(person): gender,bday.getQuoteDate(), dday.getQuoteDate(), sort.build_sort_name(name), - sort.build_sort_event(bday), - sort.build_sort_event(dday)]) + sort.build_sort_date(bday), + sort.build_sort_date(dday)]) person_list.set_row_data(0,pos2) @@ -1720,8 +1720,8 @@ def apply_filter(): bday = person.getBirth().getDateObj() dday = person.getDeath().getDateObj() - sort_bday = sort.build_sort_event(bday) - sort_dday = sort.build_sort_event(dday) + sort_bday = sort.build_sort_date(bday) + sort_dday = sort.build_sort_date(dday) qbday = bday.getQuoteDate() qdday = dday.getQuoteDate() pid = person.getId() diff --git a/gramps/src/plugins/AncestorChart.py b/gramps/src/plugins/AncestorChart.py index ee6d29b18..ab0ab5ce5 100644 --- a/gramps/src/plugins/AncestorChart.py +++ b/gramps/src/plugins/AncestorChart.py @@ -48,6 +48,7 @@ active_person = None db = None styles = StyleSheet() style_sheet_list = None +topDialog = None #------------------------------------------------------------------------ # diff --git a/gramps/src/plugins/AncestorReport.py b/gramps/src/plugins/AncestorReport.py index 1df177c57..3635cb725 100644 --- a/gramps/src/plugins/AncestorReport.py +++ b/gramps/src/plugins/AncestorReport.py @@ -48,6 +48,7 @@ active_person = None db = None styles = StyleSheet() style_sheet_list = None +topDialog = None #------------------------------------------------------------------------ # @@ -277,7 +278,6 @@ def report(database,person): global active_person global topDialog - global glade_file global db global style_sheet_list diff --git a/gramps/src/plugins/FamilyGroup.py b/gramps/src/plugins/FamilyGroup.py index 2cf893bf1..5160e7292 100644 --- a/gramps/src/plugins/FamilyGroup.py +++ b/gramps/src/plugins/FamilyGroup.py @@ -45,6 +45,7 @@ active_person = None db = None styles = StyleSheet() style_sheet_list = None +topDialog = None #------------------------------------------------------------------------ # diff --git a/gramps/src/plugins/ReadGedcom.py b/gramps/src/plugins/ReadGedcom.py index 8bcc8aa74..e1f6df448 100644 --- a/gramps/src/plugins/ReadGedcom.py +++ b/gramps/src/plugins/ReadGedcom.py @@ -78,29 +78,6 @@ fromtoRegexp = re.compile(r"\s*FROM\s+@#D([^@]+)@\s*(.*)\s+TO\s+@#D([^@]+)@\s*(. # # #------------------------------------------------------------------------- -def find_file(fullname,altpath): - if os.path.isfile(fullname): - type = utils.get_mime_type(fullname) - if type[0:6] != "image/": - return "" - else: - return fullname - other = altpath + os.sep + os.path.basename(fullname) - if os.path.isfile(other): - type = utils.get_mime_type(other) - if type[0:6] != "image/": - return "" - else: - return other - else: - return "" - -#------------------------------------------------------------------------- -# -# -# -#------------------------------------------------------------------------- - def importData(database, filename): global callback @@ -199,6 +176,41 @@ class GedcomParser: self.update(self.file_obj,file) self.code = 0 + self.search_paths = [] + + try: + f = open("/etc/fstab","r") + + for line in f.readlines(): + paths = string.split(line) + if len(paths) < 3: + continue + first = string.strip(paths[0]) + if first[0] == '#': + continue + if string.upper(paths[2]) in ["VFAT","FAT","NTFS"]: + self.search_paths.append(paths[1]) + f.close() + except: + pass + + def find_file(self,fullname,altpath): + fullname = string.replace(fullname,'\\','/') + if os.path.isfile(fullname): + return fullname + other = os.path.join(altpath,os.path.basename(fullname)) + if os.path.isfile(other): + return other + if len(fullname) > 3: + if fullname[1] == ':': + fullname = fullname[2:] + for path in self.search_paths: + other = os.path.join(path,os.path.basename(fullname)) + if os.path.isfile(other): + return other + return "" + else: + return "" def update(self,field,text): field.set_text(text) @@ -311,7 +323,6 @@ class GedcomParser: def parse_record(self): while 1: matches = self.get_next() - if matches[2] == "FAM": if self.fam_count % 10 == 0: self.update(self.families_obj,str(self.fam_count)) @@ -333,9 +344,9 @@ class GedcomParser: self.indi_count = self.indi_count + 1 self.person = self.db.findPerson(matches[1],self.pmap) self.parse_individual() - elif matches[2] == "SUBM": + elif matches[2] in ["SUBM","SUBN"]: self.ignore_sub_junk(1) - elif matches[1] == "SUBM": + elif matches[1] in ["SUBM","SUBN"]: self.ignore_sub_junk(1) elif matches[2] == "SOUR": self.parse_source(matches[1],1) @@ -354,13 +365,36 @@ class GedcomParser: noteobj.set(text + self.parse_continue_data()) self.parse_note_data(1) elif matches[2] == "OBJE": - self.ignore_sub_junk(2) + self.ignore_sub_junk(1) elif matches[1] == "TRLR": self.backup() return else: self.barf(1) + def parse_cause(self,event,level): + while 1: + matches = self.get_next() + if int(matches[0]) < level: + self.backup() + return + elif matches[1] == "SOUR": + source_ref = SourceRef() + if matches[2] and matches[2][0] != "@": + self.localref = self.localref + 1 + ref = "gsr%d" % self.localref + s = self.db.findSource(ref,self.smap) + source_ref.setBase(s) + s.setTitle('Imported Source #%d' % self.localref) + s.setNote(matches[2] + self.parse_continue_data()) + self.ignore_sub_junk(2) + else: + source_ref.setBase(self.db.findSource(matches[2],self.smap)) + self.parse_source_reference(source_ref,level+1) + event.addSourceRef(source_ref) + else: + self.barf(1) + def parse_note_data(self,level): while 1: matches = self.get_next() @@ -507,13 +541,17 @@ class GedcomParser: self.person.setPafUid(matches[2]) elif matches[1] == "ALIA": aka = Name() - names = nameRegexp.match(matches[2]).groups() - if names[0]: - aka.setFirstName(names[0]) - if names[1]: - aka.setSurname(names[1]) - if names[2]: - aka.setSuffix(names[2]) + match = nameRegexp.match(matches[2]) + if match: + names = match.groups() + if names[0]: + aka.setFirstName(names[0]) + if names[1]: + aka.setSurname(names[1]) + if names[2]: + aka.setSuffix(names[2]) + else: + aka.setFirstName(matches[2]) self.person.addAlternateName(aka) elif matches[1] == "OBJE": if matches[2] and matches[2][0] == '@': @@ -621,7 +659,7 @@ class GedcomParser: self.person.addAttribute(attr) else: self.person.addEvent(event) - elif matches[1] in ["AFN","CHAN","REFN","SOUR"]: + elif matches[1] in ["AFN","CHAN","REFN","SOUR","ASSO"]: self.ignore_sub_junk(2) elif matches[1] in ["ANCI","DESI","RIN","RFN"]: pass @@ -716,11 +754,10 @@ class GedcomParser: url.set_path(file) url.set_description(title) self.person.addUrl(url) - elif form in photo_types: - path = find_file(file,self.dir_path) + else: + path = self.find_file(file,self.dir_path) if path == "": - self.warn(_("Could not import %s: either the file could not be found, or it was not a valid image")\ - % file + "\n") + self.warn(_("Could not import %s") % file + "\n") else: photo = Photo() photo.setPath(path) @@ -730,9 +767,6 @@ class GedcomParser: oref = ObjectRef() oref.setReference(photo) self.person.addPhoto(oref) - else: - self.warn(_("Could not import %s: currently an unknown file type") % \ - file + "\n") def parse_source_object(self,source,level): form = "" @@ -755,11 +789,10 @@ class GedcomParser: else: self.barf(level+1) - if form in photo_types: - path = find_file(file,self.dir_path) + if form: + path = self.find_file(file,self.dir_path) if path == "": - self.warn(_("Could not import %s: either the file could not be found, or it was not a valid image")\ - % file + "\n") + self.warn(_("Could not import %s") % file + "\n") else: photo = Photo() photo.setPath(path) @@ -769,9 +802,6 @@ class GedcomParser: oref = ObjectRef() oref.setReference(photo) source.addPhoto(oref) - else: - self.warn(_("Could not import %s: currently an unknown file type") % \ - file + "\n") def parse_family_object(self,level): form = "" @@ -794,10 +824,10 @@ class GedcomParser: else: self.barf(level+1) - if form in photo_types: - path = find_file(file,self.dir_path) + if form: + path = self.find_file(file,self.dir_path) if path == "": - self.warn("Could not import %s: the file could not be found\n" % file) + self.warn(_("Could not import %s") % file) else: photo = Photo() photo.setPath(path) @@ -807,8 +837,6 @@ class GedcomParser: oref = ObjectRef() oref.setReference(photo) self.family.addPhoto(photo) - else: - self.warn("Could not import %s: current an unknown file type\n" % file) def parse_residence(self,address,level): while 1: @@ -888,7 +916,7 @@ class GedcomParser: ord.setDateObj(self.extract_date(matches[2])) elif matches[1] == "FAMC": ord.setFamily(self.db.findFamily(matches[2],self.fmap)) - elif matches[1] == ["PLAC", "STAT", "SOUR", "NOTE" ]: + elif matches[1] in ["PLAC", "STAT", "SOUR", "NOTE" ]: self.ignore_sub_junk(level+1) else: self.barf(level+1) @@ -914,9 +942,8 @@ class GedcomParser: name = matches[2] event.setName(name) elif matches[1] == "DATE": - foo = self.extract_date(matches[2]) - event.setDateObj(foo) - elif matches[1] == ["TIME","ADDR","AGE","AGNC","STAT","TEMP","OBJE"]: + event.setDateObj(self.extract_date(matches[2])) + elif matches[1] in ["TIME","ADDR","AGE","AGNC","STAT","TEMP","OBJE"]: self.ignore_sub_junk(level+1) elif matches[1] == "SOUR": source_ref = SourceRef() @@ -951,6 +978,7 @@ class GedcomParser: elif matches[1] == "CAUS": info = matches[2] + self.parse_continue_data() event.setCause(info) + self.parse_cause(event,level+1) elif matches[1] == "NOTE": info = matches[2] + self.parse_continue_data() if note == "": @@ -979,7 +1007,7 @@ class GedcomParser: break elif matches[1] == "DATE": event.setDateObj(self.extract_date(matches[2])) - elif matches[1] == ["TIME","ADDR","AGE","AGNC","STAT","TEMP","OBJE"]: + elif matches[1] in ["TIME","ADDR","AGE","AGNC","STAT","TEMP","OBJE"]: self.ignore_sub_junk(level+1) elif matches[1] == "SOUR": source_ref = SourceRef() @@ -1017,9 +1045,13 @@ class GedcomParser: self.placemap[val] = place event.setPlace(place) self.ignore_sub_junk(level+1) + elif matches[1] == "TYPE": + # eventually do something intelligent here + pass elif matches[1] == "CAUS": info = matches[2] + self.parse_continue_data() event.setCause(info) + self.parse_cause(event,level+1) elif matches[1] == "NOTE": info = matches[2] + self.parse_continue_data() if note == "": @@ -1072,7 +1104,7 @@ class GedcomParser: else: name = matches[2] attr.setName(name) - elif matches[1] == ["CAUS", "DATE","TIME","ADDR","AGE","AGNC","STAT","TEMP","OBJE"]: + elif matches[1] in ["CAUS", "DATE","TIME","ADDR","AGE","AGNC","STAT","TEMP","OBJE"]: self.ignore_sub_junk(level+1) elif matches[1] == "SOUR": source_ref = SourceRef() @@ -1127,7 +1159,11 @@ class GedcomParser: event.setName(matches[2]) elif matches[1] == "DATE": event.setDateObj(self.extract_date(matches[2])) - elif matches[1] == ["TIME","AGE","AGNC","CAUS","ADDR","STAT","TEMP","HUSB","WIFE","OBJE"]: + elif matches[1] == "CAUS": + info = matches[2] + self.parse_continue_data() + event.setCause(info) + self.parse_cause(event,level+1) + elif matches[1] in ["TIME","AGE","AGNC","ADDR","STAT","TEMP","HUSB","WIFE","OBJE"]: self.ignore_sub_junk(level+1) elif matches[1] == "SOUR": source_ref = SourceRef() @@ -1318,22 +1354,12 @@ class GedcomParser: self.update(self.created_obj,matches[2]) elif matches[1] == "VERS": self.update(self.version_obj,matches[2]) - elif matches[1] == "CORP": + elif matches[1] in ["CORP","DATA","SUBM","SUBN","COPR","FILE","LANG"]: self.ignore_sub_junk(2) - elif matches[1] == "DATA": - self.ignore_sub_junk(2) - elif matches[1] == "SUBM": - pass - elif matches[1] == "SUBN": - pass elif matches[1] == "DEST": if genby == "GRAMPS": self.gedsource = self.gedmap.get_from_source_tag(matches[2]) self.broken_conc = self.gedsource.get_conc() - elif matches[1] == "FILE": - self.ignore_sub_junk(2) - elif matches[1] == "COPR": - pass elif matches[1] == "CHAR": if matches[2] == "UNICODE" or matches[2] == "UTF-8" or \ matches[2] == "UTF8": @@ -1348,8 +1374,6 @@ class GedcomParser: self.ignore_sub_junk(2) elif matches[1] == "_SCHEMA": self.parse_ftw_schema(2) - elif matches[1] == "LANG": - pass elif matches[1] == "PLAC": self.parse_place_form(2) elif matches[1] == "DATE": @@ -1496,6 +1520,7 @@ class GedcomParser: dateobj.set(data) else: dateobj.set(text) + return dateobj #------------------------------------------------------------------------- diff --git a/gramps/src/po/template.po b/gramps/src/po/template.po index 8782e8000..217b32c06 100644 --- a/gramps/src/po/template.po +++ b/gramps/src/po/template.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2001-11-08 08:26-0700\n" +"POT-Creation-Date: 2001-12-15 17:01-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -14,71 +14,71 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: glade.c:2000 +#: glade.c:2133 glade.c:2486 glade.c:2487 msgid "\n" msgstr "" -#: glade.c:2262 glade.c:2263 +#: glade.c:2417 glade.c:2418 #, c-format msgid " %s died in %s" msgstr "" -#: glade.c:2261 +#: glade.c:2416 #, c-format msgid " %s died in %s in %s" msgstr "" -#: glade.c:2260 +#: glade.c:2415 #, c-format msgid " %s died on %s" msgstr "" -#: glade.c:2259 +#: glade.c:2414 #, c-format msgid " %s died on %s in %s" msgstr "" -#: glade.c:2267 +#: glade.c:2422 #, c-format msgid " %s married." msgstr "" -#: glade.c:2266 +#: glade.c:2421 #, c-format msgid " And %s was buried in %s." msgstr "" -#: glade.c:2264 +#: glade.c:2419 #, c-format msgid " And %s was buried on %s in %s." msgstr "" -#: glade.c:2265 +#: glade.c:2420 #, c-format msgid " And %s was buried on %s." msgstr "" -#: glade.c:2273 +#: glade.c:2428 #, c-format msgid " at the age of %d %s" msgstr "" -#: glade.c:2256 +#: glade.c:2411 #, c-format msgid " in %s." msgstr "" -#: glade.c:2254 +#: glade.c:2409 #, c-format msgid " was born in the year %s in %s." msgstr "" -#: glade.c:2255 +#: glade.c:2410 #, c-format msgid " was born in the year %s." msgstr "" -#: glade.c:2253 +#: glade.c:2408 #, c-format msgid " was born on %s." msgstr "" @@ -94,114 +94,104 @@ msgstr "" msgid "%P %%" msgstr "" -#: glade.c:2194 +#: glade.c:2345 #, c-format msgid "%d broken family links were found\n" msgstr "" -#: glade.c:2200 +#: glade.c:2351 #, c-format msgid "%d corrupted family relationship fixed\n" msgstr "" -#: glade.c:2198 +#: glade.c:2349 #, c-format msgid "%d empty families were found\n" msgstr "" -#: glade.c:2188 +#: glade.c:2339 #, c-format msgid "%d event records were modified" msgstr "" -#: glade.c:2202 +#: glade.c:2353 #, c-format msgid "%d media objects were referenced, but not found\n" msgstr "" -#: glade.c:2105 +#: glade.c:2250 #, c-format msgid "%s (revision %s)" msgstr "" -#: glade.c:2167 glade.c:2269 +#: glade.c:2318 glade.c:2424 #, c-format msgid "%s Generation" msgstr "" -#: glade.c:2001 glade.c:2003 +#: glade.c:2134 glade.c:2136 #, c-format msgid "%s [%s]: event %s\n" msgstr "" -#: glade.c:2004 glade.c:2068 glade.c:2071 glade.c:2072 glade.c:2124 -#: glade.c:2195 +#: glade.c:2121 glade.c:2137 glade.c:2212 glade.c:2215 glade.c:2216 +#: glade.c:2269 glade.c:2277 glade.c:2346 #, c-format msgid "%s and %s" msgstr "" -#: glade.c:2095 glade.c:2096 glade.c:2100 glade.c:2101 glade.c:2327 -#: glade.c:2328 +#: glade.c:2242 glade.c:2243 glade.c:2246 glade.c:2247 glade.c:2482 +#: glade.c:2483 #, c-format msgid "%s could not be opened\n" msgstr "" -#: glade.c:2097 -#, c-format -msgid "%s is a corrupt file" -msgstr "" - -#: glade.c:2102 glade.c:2106 -#, c-format -msgid "%s is a corrupt file." -msgstr "" - -#: glade.c:1993 +#: glade.c:2126 #, c-format msgid "%s is already used by %s" msgstr "" -#: glade.c:2026 glade.c:2031 +#: glade.c:2169 glade.c:2174 #, c-format msgid "%s is not a directory" msgstr "" -#: glade.c:1819 +#: glade.c:1964 #, c-format msgid "%s is not a valid file name or does not exist." msgstr "" -#: glade.c:2170 +#: glade.c:2321 #, c-format msgid "%s was born in the year %s in %s. " msgstr "" -#: glade.c:2171 +#: glade.c:2322 #, c-format msgid "%s was born in the year %s. " msgstr "" -#: glade.c:2168 +#: glade.c:2319 #, c-format msgid "%s was born on %s in %s. " msgstr "" -#: glade.c:2169 +#: glade.c:2320 #, c-format msgid "%s was born on %s. " msgstr "" -#: glade.c:2196 +#: glade.c:2347 #, c-format msgid "%s was removed from the family of %s\n" msgstr "" -#: glade.c:2321 +#: glade.c:2476 #, c-format msgid "%s will be extracted as a nickname from %s\n" msgstr "" -#: glade.c:2322 +#: glade.c:2477 #, c-format msgid "%s will be extracted as a title from %s\n" msgstr "" @@ -214,55 +204,55 @@ msgstr "" msgid "(Recommended only for English)" msgstr "" -#: glade.c:1926 -msgid "(and|to|-)" +#: glade.c:2076 +msgid "(and|to|-" msgstr "" -#: glade.c:1925 -msgid "(from|between|bet|bet.)" +#: glade.c:2075 +msgid "(from|between|bet|bet." msgstr "" -#: glade.c:2182 +#: glade.c:2333 #, c-format msgid ", and was buried in the year %s in %s." msgstr "" -#: glade.c:2183 +#: glade.c:2334 #, c-format msgid ", and was buried in the year %s." msgstr "" -#: glade.c:2180 +#: glade.c:2331 #, c-format msgid ", and was buried on %s in %s." msgstr "" -#: glade.c:2181 +#: glade.c:2332 #, c-format msgid ", and was buried on %s." msgstr "" -#: glade.c:2257 glade.c:2258 +#: glade.c:2412 glade.c:2413 msgid "." msgstr "" -#: glade.c:2193 +#: glade.c:2344 msgid "1 broken family link was fixed\n" msgstr "" -#: glade.c:2199 +#: glade.c:2350 msgid "1 corrupted family relationship fixed\n" msgstr "" -#: glade.c:2197 +#: glade.c:2348 msgid "1 empty family was found\n" msgstr "" -#: glade.c:2187 +#: glade.c:2338 msgid "1 event record was modified" msgstr "" -#: glade.c:2201 +#: glade.c:2352 msgid "1 media object was referenced, but not found\n" msgstr "" @@ -318,7 +308,7 @@ msgstr "" msgid ":" msgstr "" -#: glade.c:1914 +#: glade.c:2061 msgid "A legal or common-law relationship between a husband and wife" msgstr "" @@ -326,12 +316,11 @@ msgstr "" msgid "A4" msgstr "" -#: glade.c:1975 glade.c:1978 glade.c:1981 glade.c:1984 glade.c:1987 -msgid "ABT" +#: glade.c:2105 glade.c:2108 glade.c:2111 glade.c:2114 glade.c:2117 +msgid "ABOUT" msgstr "" -#: glade.c:1968 glade.c:1977 glade.c:1980 glade.c:1983 glade.c:1986 -#: glade.c:1989 +#: glade.c:2107 glade.c:2110 glade.c:2113 glade.c:2116 glade.c:2119 msgid "AFTER" msgstr "" @@ -343,7 +332,7 @@ msgstr "" msgid "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz" msgstr "" -#: glade.c:94 glade.c:2016 +#: glade.c:94 glade.c:2150 msgid "AbiWord" msgstr "" @@ -423,7 +412,7 @@ msgstr "" msgid "Address Editor" msgstr "" -#: glade.c:1820 +#: glade.c:1965 #, c-format msgid "Address Editor for %s" msgstr "" @@ -432,24 +421,24 @@ msgstr "" msgid "Addresses" msgstr "" -#: glade.c:164 glade.c:1856 glade.c:1875 +#: glade.c:164 glade.c:2001 glade.c:2020 msgid "Adopted" msgstr "" -#: glade.c:1878 +#: glade.c:2023 msgid "Adult Christening" msgstr "" -#: glade.c:167 glade.c:2184 +#: glade.c:167 glade.c:2335 msgid "Ahnentafel Report" msgstr "" -#: glade.c:2166 +#: glade.c:2317 #, c-format msgid "Ahnentafel Report for %s" msgstr "" -#: glade.c:2277 +#: glade.c:2432 msgid "" "Aids in the analysis of data by allowing the development of custom filters " "that can be applied to the database to find similar events" @@ -459,7 +448,7 @@ msgstr "" msgid "Alignment" msgstr "" -#: glade.c:2012 +#: glade.c:2146 msgid "All people" msgstr "" @@ -467,7 +456,7 @@ msgstr "" msgid "Allow internal GRAMPS ID numbers to be edited" msgstr "" -#: glade.c:2191 +#: glade.c:2342 msgid "Allows all the events of a certain name to be renamed to a new name" msgstr "" @@ -475,11 +464,11 @@ msgstr "" msgid "Allows you to customize the data in the boxes in the report" msgstr "" -#: glade.c:1876 +#: glade.c:2021 msgid "Alternate Birth" msgstr "" -#: glade.c:1877 +#: glade.c:2022 msgid "Alternate Death" msgstr "" @@ -487,7 +476,7 @@ msgstr "" msgid "Alternate Name Editor" msgstr "" -#: glade.c:2076 +#: glade.c:2225 #, c-format msgid "Alternate Name Editor for %s" msgstr "" @@ -496,23 +485,23 @@ msgstr "" msgid "Alternate Names" msgstr "" -#: glade.c:1916 +#: glade.c:2063 msgid "An established relationship between members of the same sex" msgstr "" -#: glade.c:1918 +#: glade.c:2065 msgid "An unspecified relationship between a man and woman" msgstr "" -#: glade.c:2215 glade.c:2276 +#: glade.c:2366 glade.c:2431 msgid "Analysis and Exploration" msgstr "" -#: glade.c:185 glade.c:2133 +#: glade.c:185 glade.c:2284 msgid "Ancestor Chart" msgstr "" -#: glade.c:2132 +#: glade.c:2283 #, c-format msgid "Ancestor Chart for %s" msgstr "" @@ -525,29 +514,29 @@ msgstr "" msgid "Ancestor Graph" msgstr "" -#: glade.c:2291 glade.c:2389 +#: glade.c:2446 glade.c:2544 msgid "Ancestors" msgstr "" -#: glade.c:2293 +#: glade.c:2448 msgid "Ancestors and Descendants" msgstr "" -#: glade.c:2405 glade.c:2411 +#: glade.c:2560 glade.c:2568 #, c-format msgid "Ancestors and Descendants of %s" msgstr "" -#: glade.c:2391 +#: glade.c:2546 msgid "Ancestors and descendants" msgstr "" -#: glade.c:2403 glade.c:2409 +#: glade.c:2558 glade.c:2566 #, c-format msgid "Ancestors of %s" msgstr "" -#: glade.c:1867 +#: glade.c:2012 msgid "Annulment" msgstr "" @@ -559,11 +548,11 @@ msgstr "" msgid "Append to Current Database" msgstr "" -#: glade.c:1932 +#: glade.c:2072 msgid "April" msgstr "" -#: glade.c:1990 glade.c:1991 +#: glade.c:2123 glade.c:2124 msgid "Are you sure you want to abandon your changes?" msgstr "" @@ -575,7 +564,7 @@ msgstr "" msgid "Attribute Editor" msgstr "" -#: glade.c:1823 +#: glade.c:1968 #, c-format msgid "Attribute Editor for %s" msgstr "" @@ -584,7 +573,7 @@ msgstr "" msgid "Attributes" msgstr "" -#: glade.c:1936 +#: glade.c:2073 msgid "August" msgstr "" @@ -596,8 +585,7 @@ msgstr "" msgid "Automatically load last database" msgstr "" -#: glade.c:1967 glade.c:1976 glade.c:1979 glade.c:1982 glade.c:1985 -#: glade.c:1988 +#: glade.c:2106 glade.c:2109 glade.c:2112 glade.c:2115 glade.c:2118 msgid "BEFORE" msgstr "" @@ -609,19 +597,15 @@ msgstr "" msgid "Background Color" msgstr "" -#: glade.c:1880 +#: glade.c:2024 msgid "Baptism" msgstr "" -#: glade.c:1879 -msgid "Baptism (LDS)" -msgstr "" - -#: glade.c:1881 +#: glade.c:2025 msgid "Bar Mitzvah" msgstr "" -#: glade.c:1882 +#: glade.c:2026 msgid "Bas Mitzvah" msgstr "" @@ -640,9 +624,10 @@ msgid "" "Should the following changes be made?" msgstr "" -#: glade.c:239 glade.c:1824 glade.c:1825 glade.c:1826 glade.c:1827 -#: glade.c:1855 glade.c:2050 glade.c:2116 glade.c:2117 glade.c:2121 -#: glade.c:2122 glade.c:2274 glade.c:2279 +#: glade.c:239 glade.c:1969 glade.c:1970 glade.c:1971 glade.c:1972 +#: glade.c:2000 glade.c:2156 glade.c:2157 glade.c:2158 glade.c:2159 +#: glade.c:2188 glade.c:2194 glade.c:2261 glade.c:2262 glade.c:2266 +#: glade.c:2267 glade.c:2429 glade.c:2434 msgid "Birth" msgstr "" @@ -658,6 +643,10 @@ msgstr "" msgid "Birthdate" msgstr "" +#: glade.c:2027 +msgid "Blessing" +msgstr "" + #: glade.c:253 msgid "Bold" msgstr "" @@ -674,7 +663,7 @@ msgstr "" msgid "Box Color" msgstr "" -#: glade.c:1883 +#: glade.c:2028 msgid "Burial" msgstr "" @@ -682,2898 +671,3077 @@ msgstr "" msgid "Calculate SoundEx code for the name" msgstr "" -#: glade.c:2342 +#: glade.c:2496 msgid "Calculates the relationship between two people" msgstr "" #: glade.c:268 -msgid "Cancel" -msgstr "" - -#: glade.c:2042 -msgid "Cannot revert to a previous database, since one does not exist" -msgstr "" - -#: glade.c:1908 -msgid "Caste" +msgid "Calendars" msgstr "" #: glade.c:271 -msgid "Cause" +msgid "Cancel" msgstr "" -#: glade.c:1884 -msgid "Cause Of Death" +#: glade.c:2185 +msgid "Cannot revert to a previous database, since one does not exist" msgstr "" -#: glade.c:1885 -msgid "Census" +#: glade.c:2055 +msgid "Caste" msgstr "" #: glade.c:274 -msgid "Change Event Type of" +msgid "Cause" +msgstr "" + +#: glade.c:2029 +msgid "Cause Of Death" +msgstr "" + +#: glade.c:2030 +msgid "Census" msgstr "" #: glade.c:277 -msgid "Change Global Media Object Properties" +msgid "Change Event Type of" msgstr "" #: glade.c:280 -msgid "Change Local Media Object Properties" +msgid "Change Global Media Object Properties" msgstr "" #: glade.c:283 +msgid "Change Local Media Object Properties" +msgstr "" + +#: glade.c:286 msgid "Changed by" msgstr "" -#: glade.c:1994 +#: glade.c:2127 msgid "Changing the gender caused problems with marriage information." msgstr "" -#: glade.c:2203 +#: glade.c:2354 msgid "Check Integrity" msgstr "" -#: glade.c:2204 +#: glade.c:2355 msgid "Check and repair database" msgstr "" -#: glade.c:2206 +#: glade.c:2357 msgid "" "Checks the database for integrity problems, fixing the problems that it can" msgstr "" -#: glade.c:2251 +#: glade.c:2406 #, c-format msgid "Child of %s and %s is:" msgstr "" -#: glade.c:286 glade.c:2286 glade.c:2302 glade.c:2387 +#: glade.c:289 glade.c:2441 glade.c:2457 glade.c:2542 msgid "Children" msgstr "" -#: glade.c:2252 +#: glade.c:2407 #, c-format msgid "Children of %s and %s are:" msgstr "" -#: glade.c:289 +#: glade.c:292 msgid "Choose Parents" msgstr "" -#: glade.c:292 +#: glade.c:295 msgid "Choose Spouse" msgstr "" -#: glade.c:295 +#: glade.c:298 msgid "Choose Spouse/Partner" msgstr "" -#: glade.c:300 +#: glade.c:303 msgid "Choose the HTML template" msgstr "" -#: glade.c:1828 +#: glade.c:1973 glade.c:2160 #, c-format msgid "Choose the Parents of %s" msgstr "" -#: glade.c:1886 +#: glade.c:2031 msgid "Christening" msgstr "" -#: glade.c:303 +#: glade.c:306 msgid "Church Parish" msgstr "" -#: glade.c:307 +#: glade.c:310 msgid "City" msgstr "" -#: glade.c:310 +#: glade.c:313 msgid "City/County" msgstr "" -#: glade.c:313 +#: glade.c:316 msgid "" "Click column headers to sort. When sorted by birth date, drag and drop to " "reorder children." msgstr "" -#: glade.c:316 +#: glade.c:319 msgid "Close" msgstr "" -#: glade.c:319 +#: glade.c:322 msgid "Close Window" msgstr "" -#: glade.c:322 +#: glade.c:325 msgid "Color" msgstr "" -#: glade.c:325 +#: glade.c:328 msgid "Comment" msgstr "" -#: glade.c:328 +#: glade.c:331 msgid "Comments" msgstr "" -#: glade.c:2275 +#: glade.c:2430 msgid "Compare individual events" msgstr "" -#: glade.c:331 +#: glade.c:334 msgid "Complete" msgstr "" -#: glade.c:334 +#: glade.c:337 msgid "Confidence" msgstr "" -#: glade.c:1887 +#: glade.c:2032 msgid "Confirmation" msgstr "" -#: glade.c:2061 +#: glade.c:2205 glade.c:2220 msgid "Convert to local copy" msgstr "" -#: glade.c:2032 glade.c:2033 glade.c:2034 glade.c:2035 glade.c:2036 -#: glade.c:2109 glade.c:2110 glade.c:2112 glade.c:2113 +#: glade.c:2175 glade.c:2176 glade.c:2177 glade.c:2178 glade.c:2179 +#: glade.c:2253 glade.c:2254 glade.c:2256 glade.c:2257 glade.c:2562 +#: glade.c:2563 #, c-format msgid "Could not create %s" msgstr "" -#: glade.c:2395 glade.c:2396 +#: glade.c:2550 glade.c:2551 #, c-format msgid "Could not create the directory : %s" msgstr "" -#: glade.c:2057 +#: glade.c:2201 glade.c:2222 glade.c:2486 glade.c:2487 glade.c:2488 #, c-format msgid "Could not import %s" msgstr "" -#: glade.c:2332 glade.c:2334 -#, c-format -msgid "Could not import %s: currently an unknown file type" -msgstr "" - -#: glade.c:2331 glade.c:2333 -#, c-format -msgid "" -"Could not import %s: either the file could not be found, or it was not a " -"valid image" -msgstr "" - -#: glade.c:2111 +#: glade.c:2255 #, c-format msgid "Could not load image file %s" msgstr "" -#: glade.c:2165 glade.c:2250 +#: glade.c:2316 glade.c:2405 #, c-format msgid "Could not open %s" msgstr "" -#: glade.c:2054 glade.c:2055 +#: glade.c:2198 glade.c:2199 #, c-format msgid "" "Could not open %s\n" "Using the default template" msgstr "" -#: glade.c:339 +#: glade.c:342 msgid "Country" msgstr "" -#: glade.c:2213 +#: glade.c:2364 msgid "Counts number of ancestors of selected person" msgstr "" -#: glade.c:343 +#: glade.c:346 msgid "County" msgstr "" -#: glade.c:346 +#: glade.c:349 msgid "Created by" msgstr "" -#: glade.c:2290 +#: glade.c:2445 msgid "" "Creates a family group report, showing information on a set of parents and " "their children." msgstr "" -#: glade.c:350 +#: glade.c:352 +msgid "Creates a new address from the above data" +msgstr "" + +#: glade.c:355 +msgid "Creates a new attribute from the above data" +msgstr "" + +#: glade.c:358 msgid "Creates a new event from the above data" msgstr "" -#: glade.c:353 +#: glade.c:361 msgid "Creating Web Pages" msgstr "" -#: glade.c:1888 +#: glade.c:2033 msgid "Cremation" msgstr "" -#: glade.c:2039 +#: glade.c:2182 msgid "Currently, you can only delete one person at a time" msgstr "" -#: glade.c:2082 +#: glade.c:2231 msgid "Currently, you can only delete one place at a time" msgstr "" -#: glade.c:356 +#: glade.c:364 msgid "Custom Colors" msgstr "" -#: glade.c:1839 +#: glade.c:1984 msgid "DD-MM-YYYY" msgstr "" -#: glade.c:1842 +#: glade.c:1987 msgid "DD. Month Year" msgstr "" -#: glade.c:1841 +#: glade.c:1986 msgid "DD.MM.YYYY" msgstr "" -#: glade.c:1838 +#: glade.c:1983 msgid "DD/MM/YYYY" msgstr "" -#: glade.c:1847 +#: glade.c:1992 msgid "DD/MM/YYYY, DD.MM.YYYY, or DD-MM-YYYY" msgstr "" -#: glade.c:2069 +#: glade.c:2213 msgid "Data was modified. Are you sure you want to abandon your changes?" msgstr "" -#: glade.c:359 +#: glade.c:367 msgid "Database" msgstr "" -#: glade.c:2190 glade.c:2205 glade.c:2319 glade.c:2325 glade.c:2344 +#: glade.c:2341 glade.c:2356 glade.c:2474 glade.c:2480 glade.c:2498 msgid "Database Processing" msgstr "" -#: glade.c:362 +#: glade.c:370 msgid "Database Summary" msgstr "" -#: glade.c:365 +#: glade.c:373 msgid "Database Verify" msgstr "" -#: glade.c:368 +#: glade.c:376 msgid "Database name: " msgstr "" -#: glade.c:374 +#: glade.c:383 msgid "Date" msgstr "" -#: glade.c:377 +#: glade.c:386 msgid "Date Format" msgstr "" -#: glade.c:1835 +#: glade.c:389 +msgid "Dates" +msgstr "" + +#: glade.c:1980 msgid "Day MON Year" msgstr "" -#: glade.c:380 glade.c:2274 glade.c:2280 +#: glade.c:392 glade.c:2429 glade.c:2435 msgid "Death" msgstr "" -#: glade.c:383 +#: glade.c:395 msgid "Death Date" msgstr "" -#: glade.c:386 +#: glade.c:398 msgid "Death Place" msgstr "" -#: glade.c:1940 +#: glade.c:2074 msgid "December" msgstr "" -#: glade.c:389 +#: glade.c:401 msgid "Default Web Site directory" msgstr "" -#: glade.c:392 +#: glade.c:404 msgid "Default database directory" msgstr "" -#: glade.c:395 +#: glade.c:407 msgid "Default report directory" msgstr "" -#: glade.c:1889 +#: glade.c:2034 msgid "Degree" msgstr "" -#: glade.c:402 +#: glade.c:414 msgid "Delete" msgstr "" -#: glade.c:405 +#: glade.c:417 msgid "Delete Filter" msgstr "" -#: glade.c:409 +#: glade.c:421 msgid "Delete Media Object" msgstr "" -#: glade.c:412 +#: glade.c:424 msgid "Delete Person" msgstr "" -#: glade.c:415 +#: glade.c:427 msgid "Delete Place" msgstr "" -#: glade.c:418 +#: glade.c:430 msgid "Delete Source" msgstr "" -#: glade.c:422 +#: glade.c:433 +msgid "Delete the selected address" +msgstr "" + +#: glade.c:436 +msgid "Delete the selected attribute" +msgstr "" + +#: glade.c:439 msgid "Delete the selected event" msgstr "" -#: glade.c:425 +#: glade.c:442 msgid "Descendant Browser" msgstr "" -#: glade.c:428 glade.c:2218 +#: glade.c:2372 +#, c-format +msgid "Descendant Chart for %s" +msgstr "" + +#: glade.c:2373 +msgid "Descendant Graph" +msgstr "" + +#: glade.c:445 glade.c:2369 msgid "Descendant Report" msgstr "" -#: glade.c:2292 glade.c:2390 +#: glade.c:2447 glade.c:2545 msgid "Descendants" msgstr "" -#: glade.c:2217 glade.c:2404 glade.c:2410 +#: glade.c:2368 glade.c:2559 glade.c:2567 #, c-format msgid "Descendants of %s" msgstr "" -#: glade.c:433 glade.c:1909 +#: glade.c:450 glade.c:2056 msgid "Description" msgstr "" -#: glade.c:2270 +#: glade.c:2425 msgid "Detailed Ancestral Report" msgstr "" -#: glade.c:2268 +#: glade.c:2423 #, c-format msgid "Detailed Ancestral Report for %s" msgstr "" -#: glade.c:442 +#: glade.c:459 msgid "Details" msgstr "" -#: glade.c:445 +#: glade.c:462 msgid "Determining Possible Merges" msgstr "" -#: glade.c:448 -msgid "Directories" -msgstr "" - -#: glade.c:2355 glade.c:2418 +#: glade.c:2509 glade.c:2575 msgid "Disconnected individuals" msgstr "" -#: glade.c:451 +#: glade.c:465 +msgid "Display" +msgstr "" + +#: glade.c:468 msgid "Display Format" msgstr "" -#: glade.c:454 +#: glade.c:471 msgid "Display Formats" msgstr "" -#: glade.c:457 +#: glade.c:474 msgid "Display active person's family relationships" msgstr "" -#: glade.c:460 +#: glade.c:477 msgid "Display attribute on Edit Person form" msgstr "" -#: glade.c:463 +#: glade.c:480 +msgid "Display both icons and text" +msgstr "" + +#: glade.c:483 +msgid "Display global properties editor when object is dropped" +msgstr "" + +#: glade.c:486 msgid "Display gramps ID in lists" msgstr "" -#: glade.c:466 +#: glade.c:489 +msgid "Display local properties editor when object is dropped" +msgstr "" + +#: glade.c:492 +msgid "Display only icons" +msgstr "" + +#: glade.c:495 +msgid "Display only text" +msgstr "" + +#: glade.c:498 +msgid "Display the list of media objects" +msgstr "" + +#: glade.c:501 msgid "Display the list of people" msgstr "" -#: glade.c:469 +#: glade.c:504 +msgid "Display the list of places" +msgstr "" + +#: glade.c:507 msgid "Display the list of sources" msgstr "" -#: glade.c:1869 +#: glade.c:2014 msgid "Divorce" msgstr "" -#: glade.c:1868 glade.c:1890 +#: glade.c:2013 glade.c:2035 msgid "Divorce Filing" msgstr "" -#: glade.c:472 +#: glade.c:510 msgid "Do not compress XML data file" msgstr "" -#: glade.c:475 +#: glade.c:513 msgid "Do not display alternate names in person list" msgstr "" -#: glade.c:478 +#: glade.c:516 msgid "Do not include comments and text in source information" msgstr "" -#: glade.c:482 +#: glade.c:520 msgid "Do not include records marked private" msgstr "" -#: glade.c:485 +#: glade.c:523 msgid "Do not make a local copy" msgstr "" -#: glade.c:488 +#: glade.c:526 msgid "Do not use images" msgstr "" -#: glade.c:491 +#: glade.c:529 msgid "Do not use images for living people" msgstr "" -#: glade.c:2038 +#: glade.c:2181 #, c-format msgid "Do you really wish to delete %s?" msgstr "" -#: glade.c:2025 +#: glade.c:2168 msgid "Do you want to close the current database and create a new one?" msgstr "" -#: glade.c:2041 +#: glade.c:2184 msgid "" "Do you wish to abandon your changes and revert to the last saved database?" msgstr "" -#: glade.c:2024 +#: glade.c:2167 msgid "Do you wish to save the changes?" msgstr "" -#: glade.c:2052 +#: glade.c:2196 #, c-format msgid "Do you wish to set %s as the home person?" msgstr "" -#: glade.c:494 +#: glade.c:532 msgid "Document Styles" msgstr "" -#: glade.c:2080 +#: glade.c:2229 #, c-format msgid "Double clicking will make %s the active person" msgstr "" -#: glade.c:2079 +#: glade.c:2228 msgid "Doubleclick to edit, Shift-Doubleclick to make the active person" msgstr "" -#: glade.c:501 +#: glade.c:535 +msgid "Drag and Drop from an External Source" +msgstr "" + +#: glade.c:538 +msgid "Drag and Drop from an Internal Source" +msgstr "" + +#: glade.c:545 msgid "Edit" msgstr "" -#: glade.c:504 +#: glade.c:548 msgid "Edit Bookmarks" msgstr "" -#: glade.c:507 +#: glade.c:551 msgid "Edit Media Object" msgstr "" -#: glade.c:510 +#: glade.c:554 msgid "Edit Note" msgstr "" -#: glade.c:2060 +#: glade.c:2204 glade.c:2219 msgid "Edit Object Properties" msgstr "" -#: glade.c:514 +#: glade.c:558 msgid "Edit Properties" msgstr "" -#: glade.c:518 +#: glade.c:562 msgid "Edit Source" msgstr "" -#: glade.c:521 +#: glade.c:565 msgid "Edit marriage information" msgstr "" -#: glade.c:525 +#: glade.c:569 msgid "Edit source information for the highlighted event" msgstr "" -#: glade.c:2059 +#: glade.c:2203 glade.c:2218 msgid "Edit with the GIMP" msgstr "" -#: glade.c:528 +#: glade.c:572 msgid "Edit/View" msgstr "" -#: glade.c:531 +#: glade.c:575 msgid "Edit/View Person" msgstr "" -#: glade.c:534 +#: glade.c:578 msgid "Edit/View Place" msgstr "" -#: glade.c:537 +#: glade.c:581 msgid "Edit/View Source" msgstr "" -#: glade.c:1891 +#: glade.c:2036 msgid "Education" msgstr "" -#: glade.c:2143 glade.c:2228 +#: glade.c:2294 glade.c:2383 msgid "Eighth" msgstr "" -#: glade.c:2153 glade.c:2238 +#: glade.c:2304 glade.c:2393 msgid "Eightteenth" msgstr "" -#: glade.c:1892 +#: glade.c:2037 msgid "Elected" msgstr "" -#: glade.c:2146 glade.c:2231 +#: glade.c:2297 glade.c:2386 msgid "Eleventh" msgstr "" -#: glade.c:1893 +#: glade.c:2038 msgid "Emigration" msgstr "" -#: glade.c:540 +#: glade.c:584 msgid "Enable Custom Colors" msgstr "" -#: glade.c:543 +#: glade.c:587 +msgid "Enable autocompletion" +msgstr "" + +#: glade.c:590 msgid "Encoding" msgstr "" -#: glade.c:1870 +#: glade.c:593 +msgid "Endowment" +msgstr "" + +#: glade.c:2015 msgid "Engagement" msgstr "" -#: glade.c:2294 glade.c:2402 glade.c:2408 +#: glade.c:2449 glade.c:2557 glade.c:2565 msgid "Entire Database" msgstr "" -#: glade.c:2393 +#: glade.c:2548 msgid "Entire database" msgstr "" -#: glade.c:546 +#: glade.c:596 msgid "Entry Formats" msgstr "" -#: glade.c:2098 glade.c:2099 glade.c:2103 glade.c:2104 glade.c:2107 -#: glade.c:2108 +#: glade.c:2244 glade.c:2245 glade.c:2248 glade.c:2249 glade.c:2251 +#: glade.c:2252 #, c-format msgid "Error reading %s" msgstr "" -#: glade.c:549 +#: glade.c:599 msgid "Even Row Background" msgstr "" -#: glade.c:552 +#: glade.c:602 msgid "Even Row Foreground" msgstr "" -#: glade.c:555 +#: glade.c:605 msgid "Event" msgstr "" -#: glade.c:558 +#: glade.c:608 msgid "Event Comparison" msgstr "" -#: glade.c:561 +#: glade.c:611 msgid "Event Comparison - Create a complex filter" msgstr "" -#: glade.c:564 +#: glade.c:614 msgid "Event Editor" msgstr "" -#: glade.c:567 +#: glade.c:617 msgid "Event Type" msgstr "" -#: glade.c:570 +#: glade.c:620 msgid "Events" msgstr "" -#: glade.c:2022 +#: glade.c:2165 msgid "Exactly two people must be selected to perform a merge" msgstr "" -#: glade.c:2081 +#: glade.c:2230 msgid "Exactly two places must be selected to perform a merge" msgstr "" -#: glade.c:573 +#: glade.c:623 msgid "Exchange active person and displayed spouse" msgstr "" -#: glade.c:576 +#: glade.c:626 msgid "Export GEDCOM" msgstr "" -#: glade.c:579 +#: glade.c:629 msgid "Export GEDCOM file" msgstr "" -#: glade.c:582 +#: glade.c:632 msgid "Export GRAMPS package" msgstr "" -#: glade.c:585 +#: glade.c:635 msgid "Export PAF for PalmOS" msgstr "" -#: glade.c:588 +#: glade.c:638 msgid "Export PAF for PalmOS file" msgstr "" -#: glade.c:2407 +#: glade.c:2564 msgid "Export to GEDCOM" msgstr "" -#: glade.c:2414 +#: glade.c:2571 msgid "Export to GRAMPS package" msgstr "" -#: glade.c:2413 +#: glade.c:2570 msgid "Export to PAF for PalmOS" msgstr "" -#: glade.c:2324 +#: glade.c:2479 msgid "Extract information from names" msgstr "" -#: glade.c:591 +#: glade.c:641 msgid "F" msgstr "" -#: glade.c:2383 +#: glade.c:2538 msgid "Facts and Events" msgstr "" -#: glade.c:2014 glade.c:2085 glade.c:2086 glade.c:2087 glade.c:2088 +#: glade.c:2148 glade.c:2234 glade.c:2235 glade.c:2236 glade.c:2237 #, c-format msgid "Failed to load the module: %s" msgstr "" -#: glade.c:594 glade.c:2002 +#: glade.c:644 glade.c:2135 msgid "Families" msgstr "" -#: glade.c:597 glade.c:2063 +#: glade.c:647 glade.c:2207 msgid "Family" msgstr "" -#: glade.c:2009 +#: glade.c:2142 msgid "Family Attributes" msgstr "" -#: glade.c:2008 +#: glade.c:2141 msgid "Family Events" msgstr "" -#: glade.c:600 glade.c:2278 glade.c:2288 +#: glade.c:650 glade.c:2433 glade.c:2443 msgid "Family Group Report" msgstr "" -#: glade.c:2287 +#: glade.c:2442 #, c-format msgid "Family Group Report for %s" msgstr "" -#: glade.c:2356 +#: glade.c:2510 msgid "Family Information" msgstr "" -#: glade.c:2397 glade.c:2398 +#: glade.c:2552 glade.c:2553 msgid "Family Tree Index" msgstr "" -#: glade.c:604 glade.c:1832 glade.c:2047 glade.c:2281 glade.c:2308 -#: glade.c:2377 glade.c:2379 +#: glade.c:654 glade.c:1977 glade.c:2164 glade.c:2191 glade.c:2436 +#: glade.c:2463 glade.c:2532 glade.c:2534 msgid "Father" msgstr "" -#: glade.c:1930 +#: glade.c:2072 msgid "February" msgstr "" -#: glade.c:2307 glade.c:2376 +#: glade.c:2462 glade.c:2531 msgid "Female" msgstr "" -#: glade.c:2352 glade.c:2421 +#: glade.c:2506 glade.c:2578 msgid "Females" msgstr "" -#: glade.c:2150 glade.c:2235 +#: glade.c:2301 glade.c:2390 msgid "Fifteenth" msgstr "" -#: glade.c:2140 glade.c:2225 +#: glade.c:2291 glade.c:2380 msgid "Fifth" msgstr "" -#: glade.c:607 +#: glade.c:657 msgid "File" msgstr "" -#: glade.c:612 +#: glade.c:662 msgid "Filter" msgstr "" -#: glade.c:615 -msgid "Find Person by Name" +#: glade.c:665 +msgid "Find" msgstr "" -#: glade.c:2318 +#: glade.c:668 +msgid "Find Person" +msgstr "" + +#: glade.c:2473 msgid "Find possible duplicate people" msgstr "" -#: glade.c:2136 glade.c:2221 +#: glade.c:2287 glade.c:2376 msgid "First" msgstr "" -#: glade.c:1894 +#: glade.c:2039 msgid "First Communion" msgstr "" -#: glade.c:618 glade.c:2074 +#: glade.c:671 glade.c:2223 msgid "First Person" msgstr "" -#: glade.c:1849 +#: glade.c:1994 msgid "Firstname Surname" msgstr "" -#: glade.c:621 +#: glade.c:674 msgid "Font" msgstr "" -#: glade.c:624 +#: glade.c:677 msgid "Font Options" msgstr "" -#: glade.c:2297 +#: glade.c:2452 msgid "" "For more information or to get a copy of GraphViz, goto http://www.graphviz." "org" msgstr "" -#: glade.c:630 +#: glade.c:684 msgid "Format" msgstr "" -#: glade.c:633 -msgid "Formats" -msgstr "" - -#: glade.c:636 glade.c:1858 +#: glade.c:687 glade.c:2003 msgid "Foster" msgstr "" -#: glade.c:2149 glade.c:2234 +#: glade.c:2300 glade.c:2389 msgid "Fourteenth" msgstr "" -#: glade.c:2139 glade.c:2224 +#: glade.c:2290 glade.c:2379 msgid "Fourth" msgstr "" -#: glade.c:640 +#: glade.c:690 glade.c:2080 glade.c:2145 +msgid "French" +msgstr "" + +#: glade.c:694 msgid "GEDCOM Export" msgstr "" -#: glade.c:643 +#: glade.c:697 msgid "GEDCOM Import" msgstr "" -#: glade.c:646 +#: glade.c:700 msgid "GEDCOM Import Progress" msgstr "" -#: glade.c:649 +#: glade.c:703 msgid "GEDCOM Import Status" msgstr "" -#: glade.c:652 +#: glade.c:706 msgid "GEDCOM Read Progress" msgstr "" -#: glade.c:655 +#: glade.c:709 msgid "GEDCOM file" msgstr "" -#: glade.c:1992 glade.c:2070 +#: glade.c:712 +msgid "GRAMPS ID" +msgstr "" + +#: glade.c:715 +msgid "GRAMPS ID prefixes" +msgstr "" + +#: glade.c:2125 glade.c:2214 msgid "GRAMPS ID value was not changed." msgstr "" -#: glade.c:658 -msgid "GRAMPS id prefixes" +#: glade.c:718 +msgid "" +"GRAMPS is an Open Source project. Its success \n" +"depends on the users. User feedback is important. \n" +"Please join the mailing lists, submit bug reports,\n" +"suggest improvements, and see how you can \n" +"contribute.\n" +"\n" +"Please enjoy using GRAMPS." msgstr "" -#: glade.c:2093 -msgid "GRAMPS is not able to find an XML parser on your system." -msgstr "" - -#: glade.c:661 +#: glade.c:728 msgid "GRAMPS package export" msgstr "" -#: glade.c:665 glade.c:2382 +#: glade.c:732 glade.c:2537 msgid "Gallery" msgstr "" -#: glade.c:669 glade.c:2305 glade.c:2375 glade.c:2376 +#: glade.c:736 glade.c:2460 glade.c:2530 glade.c:2531 msgid "Gender" msgstr "" -#: glade.c:674 +#: glade.c:741 msgid "General" msgstr "" -#: glade.c:677 +#: glade.c:744 msgid "General Information" msgstr "" -#: glade.c:2134 glade.c:2185 glade.c:2219 glade.c:2271 glade.c:2289 -#: glade.c:2299 glade.c:2313 +#: glade.c:2285 glade.c:2336 glade.c:2370 glade.c:2374 glade.c:2426 +#: glade.c:2444 glade.c:2454 glade.c:2468 msgid "Generate Files" msgstr "" -#: glade.c:680 +#: glade.c:747 msgid "Generate Relationship Graphs" msgstr "" -#: glade.c:2346 +#: glade.c:2500 msgid "Generate SoundEx codes" msgstr "" -#: glade.c:2399 +#: glade.c:2554 msgid "Generate Web Site" msgstr "" -#: glade.c:683 +#: glade.c:750 msgid "Generate an Ancestor Graph" msgstr "" -#: glade.c:686 +#: glade.c:753 msgid "Generate reports" msgstr "" -#: glade.c:2348 +#: glade.c:2502 msgid "Generates SoundEx codes for names" msgstr "" -#: glade.c:2220 +#: glade.c:2371 glade.c:2375 msgid "Generates a list of descendants of the active person" msgstr "" -#: glade.c:2295 +#: glade.c:2450 msgid "Generates relationship graphs, currently only in GraphViz format." msgstr "" -#: glade.c:2401 +#: glade.c:2556 msgid "Generates web (HTML) pages for individuals, or a set of individuals." msgstr "" -#: glade.c:2209 +#: glade.c:2360 #, c-format msgid "Generation %d has %d individuals.\n" msgstr "" -#: glade.c:2208 +#: glade.c:2359 #, c-format msgid "Generation %d has 1 individual.\n" msgstr "" -#: glade.c:690 +#: glade.c:757 msgid "Generations" msgstr "" -#: glade.c:694 +#: glade.c:761 msgid "Given Name" msgstr "" -#: glade.c:697 +#: glade.c:764 msgid "Go" msgstr "" -#: glade.c:700 +#: glade.c:767 msgid "Go to Bookmark" msgstr "" -#: glade.c:1896 +#: glade.c:2041 msgid "Graduation" msgstr "" -#: glade.c:703 glade.c:2028 +#: glade.c:770 glade.c:2171 msgid "Gramps" msgstr "" -#: glade.c:1851 +#: glade.c:1996 msgid "" "Gramps (Genealogical Research and Analysis Management Programming System) is " "a personal genealogy program." msgstr "" -#: glade.c:706 +#: glade.c:773 msgid "Gramps - Add Child" msgstr "" -#: glade.c:709 +#: glade.c:776 msgid "Gramps - Add New Child" msgstr "" -#: glade.c:712 +#: glade.c:779 msgid "Gramps - Address Editor" msgstr "" -#: glade.c:715 +#: glade.c:782 msgid "Gramps - Ahnentafel Report" msgstr "" -#: glade.c:718 +#: glade.c:785 msgid "Gramps - Alternate Name Editor" msgstr "" -#: glade.c:721 +#: glade.c:788 msgid "Gramps - Ancestor Chart" msgstr "" -#: glade.c:724 +#: glade.c:791 msgid "Gramps - Attribute Editor" msgstr "" -#: glade.c:727 +#: glade.c:794 msgid "Gramps - Change Event Types" msgstr "" -#: glade.c:730 +#: glade.c:797 msgid "Gramps - Change Global Media Object Properties" msgstr "" -#: glade.c:733 +#: glade.c:800 msgid "Gramps - Change Local Media Object Properties" msgstr "" -#: glade.c:736 +#: glade.c:803 msgid "Gramps - Choose Parents" msgstr "" -#: glade.c:739 +#: glade.c:806 msgid "Gramps - Choose Spouse" msgstr "" -#: glade.c:742 +#: glade.c:809 msgid "Gramps - Complex Filter" msgstr "" -#: glade.c:745 +#: glade.c:812 msgid "Gramps - Database Summary" msgstr "" -#: glade.c:748 +#: glade.c:815 msgid "Gramps - Database Verify" msgstr "" -#: glade.c:751 +#: glade.c:818 msgid "Gramps - Descendant Browser" msgstr "" -#: glade.c:754 +#: glade.c:821 msgid "Gramps - Descendant Report" msgstr "" -#: glade.c:757 +#: glade.c:824 msgid "Gramps - Document Styles" msgstr "" -#: glade.c:760 +#: glade.c:827 msgid "Gramps - Edit Bookmarks" msgstr "" -#: glade.c:763 +#: glade.c:830 msgid "Gramps - Edit Note" msgstr "" -#: glade.c:766 +#: glade.c:833 msgid "Gramps - Edit Person" msgstr "" -#: glade.c:769 +#: glade.c:836 msgid "Gramps - Event Comparison" msgstr "" -#: glade.c:772 +#: glade.c:839 msgid "Gramps - Event Editor" msgstr "" -#: glade.c:775 +#: glade.c:842 msgid "Gramps - Export GRAMPS package" msgstr "" -#: glade.c:778 +#: glade.c:845 msgid "Gramps - Family Group Report" msgstr "" -#: glade.c:781 -msgid "Gramps - Find person" +#: glade.c:848 +msgid "Gramps - Find Person" msgstr "" -#: glade.c:784 +#: glade.c:851 msgid "Gramps - GEDCOM Import" msgstr "" -#: glade.c:787 +#: glade.c:854 msgid "Gramps - Generate HTML reports" msgstr "" -#: glade.c:790 +#: glade.c:857 msgid "Gramps - Getting Started" msgstr "" -#: glade.c:793 +#: glade.c:860 msgid "Gramps - Gramps import" msgstr "" -#: glade.c:796 +#: glade.c:863 msgid "Gramps - Individual Summary" msgstr "" -#: glade.c:799 +#: glade.c:866 +msgid "Gramps - Internal Error Ecountered" +msgstr "" + +#: glade.c:869 msgid "Gramps - Internet Address Editor" msgstr "" -#: glade.c:802 +#: glade.c:872 msgid "Gramps - Marriage Editor" msgstr "" -#: glade.c:805 +#: glade.c:875 msgid "Gramps - Marriage/Relationship Editor" msgstr "" -#: glade.c:808 +#: glade.c:878 msgid "Gramps - Merge List" msgstr "" -#: glade.c:811 +#: glade.c:881 msgid "Gramps - Merge People" msgstr "" -#: glade.c:814 +#: glade.c:884 msgid "Gramps - Merge Places" msgstr "" -#: glade.c:817 +#: glade.c:887 msgid "Gramps - Name and Title Extraction Tool" msgstr "" -#: glade.c:820 +#: glade.c:890 msgid "Gramps - Open a database" msgstr "" -#: glade.c:823 +#: glade.c:893 msgid "Gramps - Place Editor" msgstr "" -#: glade.c:826 +#: glade.c:896 msgid "Gramps - Plugin Selection" msgstr "" -#: glade.c:829 +#: glade.c:899 msgid "Gramps - Preferences" msgstr "" -#: glade.c:832 +#: glade.c:902 msgid "Gramps - Relationship Calculator" msgstr "" -#: glade.c:835 +#: glade.c:905 msgid "Gramps - Report Selection" msgstr "" -#: glade.c:838 +#: glade.c:908 +msgid "Gramps - Report Title" +msgstr "" + +#: glade.c:911 msgid "Gramps - Revison Control Comment" msgstr "" -#: glade.c:841 +#: glade.c:914 msgid "Gramps - Save as a Spreadsheet" msgstr "" -#: glade.c:844 +#: glade.c:917 msgid "Gramps - Select File" msgstr "" -#: glade.c:847 +#: glade.c:920 msgid "Gramps - Select a Media Object" msgstr "" -#: glade.c:850 +#: glade.c:923 msgid "Gramps - Select an older revision" msgstr "" -#: glade.c:853 +#: glade.c:926 msgid "Gramps - Select default database directory" msgstr "" -#: glade.c:856 +#: glade.c:929 msgid "Gramps - Select default report directory" msgstr "" -#: glade.c:859 +#: glade.c:932 msgid "Gramps - SoundEx Code Generator" msgstr "" -#: glade.c:862 +#: glade.c:935 msgid "Gramps - Source Editor" msgstr "" -#: glade.c:865 +#: glade.c:938 msgid "Gramps - Source Information" msgstr "" -#: glade.c:868 +#: glade.c:941 msgid "Gramps - Source Reference Selection" msgstr "" -#: glade.c:871 +#: glade.c:944 msgid "Gramps - Style Editor" msgstr "" -#: glade.c:874 +#: glade.c:947 msgid "Gramps Import" msgstr "" -#: glade.c:877 +#: glade.c:950 msgid "Gramps Startup Druid" msgstr "" -#: glade.c:880 +#: glade.c:953 msgid "Gramps file" msgstr "" -#: glade.c:2392 +#: glade.c:2547 msgid "Grandparent's ancestors and descendants" msgstr "" -#: glade.c:883 +#: glade.c:956 msgid "GraphViz (dot)" msgstr "" -#: glade.c:2296 +#: glade.c:2451 msgid "" "GraphViz (dot) can transform the graph into postscript, jpeg, png, vrml, " "svg, and many other formats." msgstr "" -#: glade.c:886 +#: glade.c:959 msgid "GraphViz File" msgstr "" -#: glade.c:889 glade.c:2018 +#: glade.c:962 glade.c:2145 +msgid "Gregorian" +msgstr "" + +#: glade.c:965 glade.c:2152 msgid "HTML" msgstr "" -#: glade.c:892 +#: glade.c:968 msgid "HTML Template" msgstr "" -#: glade.c:2177 +#: glade.c:2328 #, c-format msgid "He died in the year %s" msgstr "" -#: glade.c:2176 +#: glade.c:2327 #, c-format msgid "He died in the year %s in %s" msgstr "" -#: glade.c:2173 +#: glade.c:2324 #, c-format msgid "He died on %s" msgstr "" -#: glade.c:2172 +#: glade.c:2323 #, c-format msgid "He died on %s in %s" msgstr "" -#: glade.c:895 +#: glade.c:971 glade.c:2079 glade.c:2145 +msgid "Hebrew" +msgstr "" + +#: glade.c:974 msgid "Hide people not likely to be a child of this family" msgstr "" -#: glade.c:898 glade.c:1865 glade.c:2317 +#: glade.c:977 glade.c:2010 glade.c:2472 msgid "High" msgstr "" -#: glade.c:901 +#: glade.c:980 msgid "Home" msgstr "" -#: glade.c:904 +#: glade.c:983 msgid "I" msgstr "" -#: glade.c:910 +#: glade.c:989 msgid "ID" msgstr "" -#: glade.c:913 +#: glade.c:992 msgid "Identification" msgstr "" -#: glade.c:1910 +#: glade.c:2057 msgid "Identification Number" msgstr "" -#: glade.c:916 +#: glade.c:995 msgid "Image" msgstr "" -#: glade.c:1895 +#: glade.c:2040 msgid "Immigration" msgstr "" -#: glade.c:2335 +#: glade.c:2489 msgid "Import from GEDCOM" msgstr "" -#: glade.c:2336 -msgid "Import from Gramps" +#: glade.c:2490 +msgid "Import from GRAMPS" msgstr "" -#: glade.c:919 +#: glade.c:998 msgid "Include a link to the index page" msgstr "" -#: glade.c:2388 +#: glade.c:2543 msgid "Individual" msgstr "" -#: glade.c:2006 +#: glade.c:2139 msgid "Individual Attributes" msgstr "" -#: glade.c:2005 +#: glade.c:2138 msgid "Individual Events" msgstr "" -#: glade.c:2310 +#: glade.c:2465 msgid "Individual Facts" msgstr "" -#: glade.c:2007 +#: glade.c:2140 msgid "Individual Names" msgstr "" -#: glade.c:922 glade.c:2312 +#: glade.c:1001 glade.c:2467 msgid "Individual Summary" msgstr "" -#: glade.c:2311 +#: glade.c:2466 #, c-format msgid "Individual Summary for %s" msgstr "" -#: glade.c:2349 +#: glade.c:2503 msgid "Individuals" msgstr "" -#: glade.c:2354 +#: glade.c:2508 msgid "Individuals missing birth dates" msgstr "" -#: glade.c:2353 +#: glade.c:2507 msgid "Individuals with incomplete names" msgstr "" -#: glade.c:2360 +#: glade.c:2514 msgid "Individuals with media objects" msgstr "" -#: glade.c:925 +#: glade.c:1004 msgid "Information" msgstr "" -#: glade.c:2214 +#: glade.c:2365 msgid "Interactive descendant browser" msgstr "" -#: glade.c:928 +#: glade.c:1007 +msgid "Internal Error Encountered" +msgstr "" + +#: glade.c:1010 msgid "Internet" msgstr "" -#: glade.c:931 glade.c:1997 glade.c:1999 +#: glade.c:1013 glade.c:2130 glade.c:2132 msgid "Internet Address Editor" msgstr "" -#: glade.c:1996 glade.c:1998 +#: glade.c:2129 glade.c:2131 #, c-format msgid "Internet Address Editor for %s" msgstr "" -#: glade.c:934 +#: glade.c:1016 msgid "Internet Addresses" msgstr "" -#: glade.c:2040 +#: glade.c:2183 msgid "Invalid move. Children must be ordered by birth date." msgstr "" -#: glade.c:937 +#: glade.c:1019 msgid "Invert" msgstr "" -#: glade.c:940 +#: glade.c:1022 msgid "Italic" msgstr "" -#: glade.c:1929 +#: glade.c:2072 msgid "January" msgstr "" -#: glade.c:1935 +#: glade.c:1025 glade.c:2078 glade.c:2145 +msgid "Julian" +msgstr "" + +#: glade.c:2073 msgid "July" msgstr "" -#: glade.c:1934 +#: glade.c:2073 msgid "June" msgstr "" -#: glade.c:2020 +#: glade.c:2154 msgid "KWord" msgstr "" -#: glade.c:943 +#: glade.c:1028 msgid "Keep other birth event as an alternate birth event" msgstr "" -#: glade.c:946 +#: glade.c:1031 msgid "Keep other death event as an alternate death event" msgstr "" -#: glade.c:949 +#: glade.c:1034 msgid "Keep other name as an alternate name" msgstr "" -#: glade.c:2019 +#: glade.c:1037 +msgid "LDS" +msgstr "" + +#: glade.c:1040 +msgid "LDS Baptism" +msgstr "" + +#: glade.c:2153 msgid "LaTeX" msgstr "" -#: glade.c:952 glade.c:2078 +#: glade.c:1043 glade.c:2227 msgid "Landscape" msgstr "" -#: glade.c:955 +#: glade.c:1046 msgid "Latitude" msgstr "" -#: glade.c:958 +#: glade.c:1049 msgid "Left Margin" msgstr "" -#: glade.c:961 +#: glade.c:1053 msgid "Letter" msgstr "" -#: glade.c:964 +#: glade.c:1056 msgid "List display options" msgstr "" -#: glade.c:2370 +#: glade.c:2525 msgid "List exceptions to assertions or checks about the database" msgstr "" -#: glade.c:967 +#: glade.c:1059 msgid "Load Filters" msgstr "" -#: glade.c:2027 +#: glade.c:2170 #, c-format msgid "Loading %s ..." msgstr "" -#: glade.c:970 +#: glade.c:1062 msgid "Location" msgstr "" -#: glade.c:973 glade.c:2067 +#: glade.c:1065 glade.c:2211 msgid "Location Editor" msgstr "" -#: glade.c:2066 +#: glade.c:2210 #, c-format msgid "Location Editor for %s" msgstr "" -#: glade.c:976 +#: glade.c:1068 msgid "Longitude" msgstr "" -#: glade.c:979 glade.c:1863 glade.c:2315 +#: glade.c:1071 glade.c:2008 glade.c:2470 msgid "Low" msgstr "" -#: glade.c:1837 +#: glade.c:1982 msgid "MM-DD-YYYY" msgstr "" -#: glade.c:1840 +#: glade.c:1985 msgid "MM.DD.YYYY" msgstr "" -#: glade.c:1836 +#: glade.c:1981 msgid "MM/DD/YYYY" msgstr "" -#: glade.c:1846 +#: glade.c:1991 msgid "MM/DD/YYYY, MM.DD.YYYY, or MM-DD-YYYY" msgstr "" -#: glade.c:1834 +#: glade.c:1979 msgid "MON Day, Year" msgstr "" -#: glade.c:982 +#: glade.c:1074 msgid "Make Local Copy" msgstr "" -#: glade.c:985 +#: glade.c:1077 +msgid "Make a local copy when the object is dropped" +msgstr "" + +#: glade.c:1080 +msgid "Make a reference to the object when the object is dropped" +msgstr "" + +#: glade.c:1083 msgid "Make the active person the default person" msgstr "" -#: glade.c:988 +#: glade.c:1086 msgid "Make the current father the active person" msgstr "" -#: glade.c:991 +#: glade.c:1089 msgid "Make the current mother the active person" msgstr "" -#: glade.c:994 +#: glade.c:1092 msgid "Make the default person the active person" msgstr "" -#: glade.c:997 +#: glade.c:1095 msgid "Make the selected child the active person" msgstr "" -#: glade.c:2306 glade.c:2375 +#: glade.c:2461 glade.c:2530 msgid "Male" msgstr "" -#: glade.c:2351 glade.c:2424 +#: glade.c:2505 glade.c:2581 msgid "Males" msgstr "" -#: glade.c:1931 +#: glade.c:2072 msgid "March" msgstr "" -#: glade.c:1874 +#: glade.c:2019 msgid "Marriage" msgstr "" -#: glade.c:1871 +#: glade.c:2016 msgid "Marriage Contract" msgstr "" -#: glade.c:1000 +#: glade.c:1098 msgid "Marriage Editor" msgstr "" -#: glade.c:1872 +#: glade.c:2017 msgid "Marriage License" msgstr "" -#: glade.c:1873 +#: glade.c:2018 msgid "Marriage Settlement" msgstr "" -#: glade.c:1003 +#: glade.c:1101 msgid "Marriage/Relationship Editor" msgstr "" -#: glade.c:2300 glade.c:2385 +#: glade.c:2455 glade.c:2540 msgid "Marriages/Children" msgstr "" -#: glade.c:1821 glade.c:1914 glade.c:1919 glade.c:2284 glade.c:2285 +#: glade.c:1966 glade.c:2061 glade.c:2066 glade.c:2439 glade.c:2440 msgid "Married" msgstr "" -#: glade.c:1006 -msgid "Match Treshold" +#: glade.c:1104 +msgid "Match Threshold" msgstr "" -#: glade.c:1009 +#: glade.c:1107 msgid "Maximum Generations" msgstr "" -#: glade.c:1012 +#: glade.c:1110 msgid "Maximum age" msgstr "" -#: glade.c:1015 +#: glade.c:1113 msgid "Maximum age to bear a child" msgstr "" -#: glade.c:1018 +#: glade.c:1116 msgid "Maximum age to father a child" msgstr "" -#: glade.c:1021 +#: glade.c:1119 msgid "Maximum age to marry" msgstr "" -#: glade.c:1024 +#: glade.c:1122 msgid "Maximum husband-wife age difference" msgstr "" -#: glade.c:1027 +#: glade.c:1125 msgid "Maximum number of children" msgstr "" -#: glade.c:1030 +#: glade.c:1128 msgid "Maximum number of consecutive years of widowhood" msgstr "" -#: glade.c:1033 +#: glade.c:1131 msgid "Maximum number of spouses for a person" msgstr "" -#: glade.c:1036 +#: glade.c:1134 msgid "Maximum number of years between children" msgstr "" -#: glade.c:1039 +#: glade.c:1137 msgid "Maximum span of years for all children" msgstr "" -#: glade.c:1933 +#: glade.c:2073 msgid "May" msgstr "" -#: glade.c:1042 +#: glade.c:1140 msgid "Media" msgstr "" -#: glade.c:1045 +#: glade.c:1143 msgid "Media Object" msgstr "" -#: glade.c:2010 glade.c:2359 +#: glade.c:1146 glade.c:2143 glade.c:2513 msgid "Media Objects" msgstr "" -#: glade.c:1897 +#: glade.c:2042 msgid "Medical Information" msgstr "" -#: glade.c:2316 +#: glade.c:2471 msgid "Medium" msgstr "" -#: glade.c:1048 +#: glade.c:1149 msgid "Men" msgstr "" -#: glade.c:1051 +#: glade.c:1152 msgid "Merge" msgstr "" -#: glade.c:1054 +#: glade.c:1155 msgid "Merge People" msgstr "" -#: glade.c:1057 +#: glade.c:1158 msgid "Merge and Close" msgstr "" -#: glade.c:1060 +#: glade.c:1161 msgid "Merge and Edit" msgstr "" -#: glade.c:1898 +#: glade.c:2043 msgid "Military Service" msgstr "" -#: glade.c:1063 +#: glade.c:1164 msgid "Minimum age to bear a child" msgstr "" -#: glade.c:1066 +#: glade.c:1167 msgid "Minimum age to father a child" msgstr "" -#: glade.c:1069 +#: glade.c:1170 msgid "Minimum age to marry" msgstr "" -#: glade.c:1833 +#: glade.c:2519 +msgid "Missing Media Objects" +msgstr "" + +#: glade.c:1978 msgid "Month Day, Year" msgstr "" -#: glade.c:1073 glade.c:1831 glade.c:2048 glade.c:2282 glade.c:2309 -#: glade.c:2378 glade.c:2380 +#: glade.c:1174 glade.c:1976 glade.c:2163 glade.c:2192 glade.c:2437 +#: glade.c:2464 glade.c:2533 glade.c:2535 msgid "Mother" msgstr "" -#: glade.c:1076 +#: glade.c:1177 msgid "Multiple" msgstr "" -#: glade.c:1083 glade.c:2304 glade.c:2374 +#: glade.c:1184 glade.c:2459 glade.c:2529 msgid "Name" msgstr "" -#: glade.c:1086 +#: glade.c:1187 msgid "Name Format" msgstr "" -#: glade.c:1089 +#: glade.c:1190 msgid "Name and Title Extraction Tool" msgstr "" -#: glade.c:1092 +#: glade.c:1193 msgid "Name used to generate SoundEx code" msgstr "" -#: glade.c:1095 +#: glade.c:1196 msgid "Names" msgstr "" -#: glade.c:2432 +#: glade.c:2589 msgid "Names that contain a substring" msgstr "" -#: glade.c:2431 +#: glade.c:2588 msgid "Names that match a regular expression" msgstr "" -#: glade.c:2426 +#: glade.c:2583 msgid "Names with same SoundEx code as ..." msgstr "" -#: glade.c:2425 +#: glade.c:2582 msgid "Names with the specified SoundEx code" msgstr "" -#: glade.c:1911 +#: glade.c:2058 msgid "National Origin" msgstr "" -#: glade.c:1899 +#: glade.c:2044 msgid "Naturalization" msgstr "" -#: glade.c:2394 +#: glade.c:2549 #, c-format msgid "Neither %s nor %s are directories" msgstr "" -#: glade.c:1098 +#: glade.c:1199 msgid "New Database" msgstr "" -#: glade.c:1101 +#: glade.c:1202 msgid "New Person" msgstr "" -#: glade.c:1104 +#: glade.c:1205 msgid "Nick Name" msgstr "" -#: glade.c:2154 glade.c:2239 +#: glade.c:2305 glade.c:2394 msgid "Nineteenth" msgstr "" -#: glade.c:2144 glade.c:2229 +#: glade.c:2295 glade.c:2384 msgid "Ninth" msgstr "" -#: glade.c:1107 +#: glade.c:1208 msgid "No Addresses" msgstr "" -#: glade.c:1110 +#: glade.c:1211 msgid "No Alternate Names" msgstr "" -#: glade.c:1114 +#: glade.c:1215 msgid "No Attributes" msgstr "" -#: glade.c:2029 glade.c:2043 glade.c:2044 +#: glade.c:2172 glade.c:2186 glade.c:2187 msgid "No Comment Provided" msgstr "" -#: glade.c:1117 +#: glade.c:1218 msgid "No Events" msgstr "" -#: glade.c:2051 +#: glade.c:2195 msgid "No default/home person has been set" msgstr "" -#: glade.c:1924 +#: glade.c:2071 msgid "No definition available" msgstr "" -#: glade.c:2013 glade.c:2131 +#: glade.c:2147 glade.c:2276 msgid "No description" msgstr "" -#: glade.c:2090 glade.c:2092 +#: glade.c:2239 glade.c:2241 msgid "No description was provided" msgstr "" -#: glade.c:2192 +#: glade.c:2343 msgid "No errors were found" msgstr "" -#: glade.c:1915 +#: glade.c:2062 msgid "No legal or common-law relationship between man and woman" msgstr "" -#: glade.c:2323 +#: glade.c:2478 msgid "No titles or nicknames were found" msgstr "" -#: glade.c:1121 glade.c:1859 +#: glade.c:2045 +msgid "Nobility Title" +msgstr "" + +#: glade.c:1222 glade.c:2004 glade.c:2120 msgid "None" msgstr "" -#: glade.c:1124 glade.c:1864 +#: glade.c:1225 glade.c:2009 msgid "Normal" msgstr "" -#: glade.c:1129 glade.c:2125 +#: glade.c:1230 glade.c:2270 glade.c:2278 msgid "Note" msgstr "" -#: glade.c:1133 glade.c:2384 +#: glade.c:1234 glade.c:2539 msgid "Notes" msgstr "" -#: glade.c:1939 +#: glade.c:2074 msgid "November" msgstr "" -#: glade.c:1913 +#: glade.c:2060 msgid "Number of Children" msgstr "" -#: glade.c:1136 +#: glade.c:1237 msgid "Number of Errors" msgstr "" -#: glade.c:1139 +#: glade.c:1240 msgid "Number of Families" msgstr "" -#: glade.c:1142 +#: glade.c:2046 +msgid "Number of Marriages" +msgstr "" + +#: glade.c:1243 msgid "Number of People" msgstr "" -#: glade.c:2211 +#: glade.c:2362 msgid "Number of ancestors" msgstr "" -#: glade.c:2207 +#: glade.c:2358 #, c-format msgid "Number of ancestors of \"%s\" by generation" msgstr "" -#: glade.c:2357 +#: glade.c:2511 msgid "Number of families" msgstr "" -#: glade.c:2350 +#: glade.c:2504 msgid "Number of individuals" msgstr "" -#: glade.c:2362 +#: glade.c:2516 msgid "Number of unique media objects" msgstr "" -#: glade.c:1145 +#: glade.c:1246 msgid "O" msgstr "" -#: glade.c:1148 +#: glade.c:1249 msgid "OK" msgstr "" -#: glade.c:1151 +#: glade.c:1252 msgid "Object Type" msgstr "" -#: glade.c:1900 +#: glade.c:2047 msgid "Occupation" msgstr "" -#: glade.c:1938 +#: glade.c:2074 msgid "October" msgstr "" -#: glade.c:1154 +#: glade.c:1255 msgid "Odd Row Background" msgstr "" -#: glade.c:1157 +#: glade.c:1258 msgid "Odd Row Foreground" msgstr "" -#: glade.c:1160 +#: glade.c:1261 msgid "Open" msgstr "" -#: glade.c:1163 +#: glade.c:1264 msgid "Open File" msgstr "" -#: glade.c:1166 +#: glade.c:1267 msgid "Open a GRAMPS Database" msgstr "" -#: glade.c:1169 +#: glade.c:1270 msgid "Open a database" msgstr "" -#: glade.c:1172 glade.c:2015 +#: glade.c:1274 glade.c:2149 msgid "OpenOffice" msgstr "" -#: glade.c:1175 +#: glade.c:1277 msgid "OpenOffice Spreadsheet" msgstr "" -#: glade.c:1182 +#: glade.c:1285 msgid "Options" msgstr "" -#: glade.c:1901 +#: glade.c:1288 +msgid "Ordinance" +msgstr "" + +#: glade.c:2048 msgid "Ordination" msgstr "" -#: glade.c:1187 +#: glade.c:1293 msgid "Orientation" msgstr "" -#: glade.c:1190 glade.c:1861 glade.c:1918 glade.c:1923 +#: glade.c:1296 glade.c:2006 glade.c:2065 glade.c:2070 msgid "Other" msgstr "" -#: glade.c:1193 +#: glade.c:1299 msgid "Other Names" msgstr "" -#: glade.c:1196 +#: glade.c:1302 msgid "Output File" msgstr "" -#: glade.c:1199 +#: glade.c:1305 msgid "P" msgstr "" -#: glade.c:1202 +#: glade.c:1308 msgid "PAF for PalmOS Export" msgstr "" -#: glade.c:1205 glade.c:2017 +#: glade.c:1311 glade.c:2151 msgid "PDF" msgstr "" -#: glade.c:1208 +#: glade.c:1314 msgid "P_laces" msgstr "" -#: glade.c:1211 +#: glade.c:1317 msgid "Padding" msgstr "" -#: glade.c:1214 +#: glade.c:1320 msgid "Page break between generations" msgstr "" -#: glade.c:1217 +#: glade.c:1323 msgid "Pages" msgstr "" -#: glade.c:1224 +#: glade.c:1331 msgid "Paper" msgstr "" -#: glade.c:1227 +#: glade.c:1334 msgid "Paper Orientation" msgstr "" -#: glade.c:1230 +#: glade.c:1337 msgid "Paper Size Selection" msgstr "" -#: glade.c:1233 +#: glade.c:1340 msgid "Paragraph Options" msgstr "" -#: glade.c:1236 +#: glade.c:1343 msgid "Paragraph Style" msgstr "" -#: glade.c:1829 glade.c:1830 glade.c:2045 glade.c:2046 +#: glade.c:1974 glade.c:1975 glade.c:2161 glade.c:2162 glade.c:2189 +#: glade.c:2190 msgid "Parent" msgstr "" -#: glade.c:1239 +#: glade.c:1346 msgid "Parent Relationship" msgstr "" -#: glade.c:1242 +#: glade.c:1349 msgid "Parents" msgstr "" -#: glade.c:1822 glade.c:1916 glade.c:1921 +#: glade.c:1967 glade.c:2063 glade.c:2068 msgid "Partners" msgstr "" -#: glade.c:1246 +#: glade.c:1353 msgid "Path" msgstr "" -#: glade.c:1249 +#: glade.c:1356 msgid "Pe_digree" msgstr "" -#: glade.c:1252 +#: glade.c:1359 msgid "Pedigree" msgstr "" -#: glade.c:1256 glade.c:2000 +#: glade.c:1363 glade.c:2133 msgid "People" msgstr "" -#: glade.c:2406 glade.c:2412 +#: glade.c:2561 glade.c:2569 #, c-format msgid "People somehow connected to %s" msgstr "" -#: glade.c:2420 +#: glade.c:2577 msgid "People who have an event type of ..." msgstr "" -#: glade.c:2422 +#: glade.c:2579 msgid "People who have images" msgstr "" -#: glade.c:2416 +#: glade.c:2573 msgid "People who were adopted" msgstr "" -#: glade.c:2415 +#: glade.c:2572 msgid "People with an event after ..." msgstr "" -#: glade.c:2417 +#: glade.c:2574 msgid "People with an event before ..." msgstr "" -#: glade.c:2419 +#: glade.c:2576 msgid "People with an event location of ..." msgstr "" -#: glade.c:2430 +#: glade.c:2587 msgid "People with children" msgstr "" -#: glade.c:2423 +#: glade.c:2580 msgid "People with incomplete names" msgstr "" -#: glade.c:2427 +#: glade.c:2584 msgid "People with multiple marriage records" msgstr "" -#: glade.c:2428 +#: glade.c:2585 msgid "People with no marriage records" msgstr "" -#: glade.c:2429 +#: glade.c:2586 msgid "People without a birth date" msgstr "" -#: glade.c:1261 glade.c:2062 glade.c:2274 +#: glade.c:1368 glade.c:2206 glade.c:2429 msgid "Person" msgstr "" -#: glade.c:1264 +#: glade.c:1371 msgid "Person 1" msgstr "" -#: glade.c:1267 +#: glade.c:1374 msgid "Person 2" msgstr "" -#: glade.c:1270 +#: glade.c:1377 msgid "Phone" msgstr "" -#: glade.c:1273 +#: glade.c:1380 msgid "Pick a Font" msgstr "" -#: glade.c:1279 +#: glade.c:1386 msgid "Pick a color" msgstr "" -#: glade.c:1284 glade.c:2065 +#: glade.c:1391 glade.c:2209 msgid "Place" msgstr "" -#: glade.c:1287 +#: glade.c:1394 msgid "Place 1" msgstr "" -#: glade.c:1290 +#: glade.c:1397 msgid "Place 2" msgstr "" -#: glade.c:1293 +#: glade.c:1400 msgid "Place Editor" msgstr "" -#: glade.c:1296 +#: glade.c:1403 msgid "Place Name" msgstr "" -#: glade.c:1299 glade.c:2011 +#: glade.c:1406 glade.c:2144 msgid "Places" msgstr "" -#: glade.c:1302 +#: glade.c:1409 msgid "Please be patient. This may take a while." msgstr "" -#: glade.c:1995 +#: glade.c:2128 msgid "Please check the person's marriages." msgstr "" -#: glade.c:1305 -msgid "Please enjoy using Gramps." -msgstr "" - -#: glade.c:1308 +#: glade.c:1412 msgid "" "Please enter the following information. You can change it at \n" "anytime in the program's preference settings" msgstr "" -#: glade.c:1313 glade.c:2077 +#: glade.c:1418 glade.c:2226 msgid "Portrait" msgstr "" -#: glade.c:1316 +#: glade.c:1421 msgid "Potential Merges" msgstr "" -#: glade.c:1319 +#: glade.c:1424 msgid "Preferred Output Format" msgstr "" -#: glade.c:1322 +#: glade.c:1427 msgid "Preferred Paper Size" msgstr "" -#: glade.c:1325 +#: glade.c:1430 msgid "Preview" msgstr "" -#: glade.c:1328 +#: glade.c:1433 msgid "Print" msgstr "" -#: glade.c:1331 +#: glade.c:1436 msgid "Privacy Options" msgstr "" -#: glade.c:1334 glade.c:2128 glade.c:2129 +#: glade.c:1439 glade.c:2273 glade.c:2274 glade.c:2281 glade.c:2282 msgid "Private" msgstr "" -#: glade.c:1338 +#: glade.c:1443 msgid "Private Record" msgstr "" -#: glade.c:1902 +#: glade.c:2049 msgid "Probate" msgstr "" -#: glade.c:2272 +#: glade.c:2427 msgid "Produces a detailed ancestral report" msgstr "" -#: glade.c:2314 +#: glade.c:2469 msgid "Produces a detailed report on the selected person." msgstr "" -#: glade.c:2135 +#: glade.c:2286 msgid "Produces a graphical ancestral tree graph" msgstr "" -#: glade.c:2186 +#: glade.c:2337 msgid "Produces a textual ancestral report" msgstr "" -#: glade.c:1341 +#: glade.c:1446 msgid "Prompt for comment on save" msgstr "" -#: glade.c:1903 +#: glade.c:2050 msgid "Property" msgstr "" -#: glade.c:2216 +#: glade.c:2367 msgid "Provides a browsable hierarchy based on the active person" msgstr "" -#: glade.c:2367 +#: glade.c:2522 msgid "Provides a summary of the current database" msgstr "" -#: glade.c:1344 +#: glade.c:1449 msgid "Publication Info" msgstr "" -#: glade.c:1347 +#: glade.c:1452 msgid "Publication Information" msgstr "" -#: glade.c:1350 +#: glade.c:1455 msgid "Qualifier" msgstr "" -#: glade.c:1353 glade.c:2130 +#: glade.c:1458 glade.c:2275 msgid "RCS" msgstr "" -#: glade.c:2021 +#: glade.c:2155 msgid "RTF" msgstr "" -#: glade.c:1356 +#: glade.c:1461 msgid "Rating" msgstr "" -#: glade.c:1359 +#: glade.c:1464 msgid "References" msgstr "" -#: glade.c:1362 +#: glade.c:1467 msgid "Relationship" msgstr "" -#: glade.c:1365 +#: glade.c:1470 msgid "Relationship Type" msgstr "" -#: glade.c:2340 +#: glade.c:2494 msgid "Relationship calculator" msgstr "" -#: glade.c:1368 +#: glade.c:1473 msgid "Relationship definition" msgstr "" -#: glade.c:2298 +#: glade.c:2453 msgid "Relationship graph" msgstr "" -#: glade.c:2114 glade.c:2115 glade.c:2118 glade.c:2119 glade.c:2120 -#: glade.c:2337 +#: glade.c:2258 glade.c:2259 glade.c:2260 glade.c:2263 glade.c:2264 +#: glade.c:2265 glade.c:2491 #, c-format msgid "Relationship to %s" msgstr "" -#: glade.c:1371 +#: glade.c:1476 msgid "Relationship to Father" msgstr "" -#: glade.c:1374 +#: glade.c:1479 msgid "Relationship to Mother" msgstr "" -#: glade.c:1377 +#: glade.c:1482 msgid "Relationship to child" msgstr "" -#: glade.c:1904 +#: glade.c:2051 msgid "Religion" msgstr "" -#: glade.c:1380 +#: glade.c:1485 msgid "Reload Plugins" msgstr "" -#: glade.c:1383 +#: glade.c:1488 msgid "Remove Child" msgstr "" -#: glade.c:1386 +#: glade.c:1491 msgid "Remove current spouse" msgstr "" -#: glade.c:2189 +#: glade.c:2340 msgid "Rename personal event types" msgstr "" -#: glade.c:2343 +#: glade.c:2497 msgid "Reorder gramps IDs" msgstr "" -#: glade.c:2345 +#: glade.c:2499 msgid "Reorders the gramps IDs according to gramps' default rules." msgstr "" -#: glade.c:1389 +#: glade.c:1494 msgid "Report Selection" msgstr "" -#: glade.c:1392 +#: glade.c:1497 +msgid "Report Title" +msgstr "" + +#: glade.c:1500 msgid "Reports" msgstr "" -#: glade.c:1395 +#: glade.c:1503 msgid "Researcher" msgstr "" -#: glade.c:1398 +#: glade.c:1506 msgid "Researcher Information" msgstr "" -#: glade.c:1905 +#: glade.c:2052 msgid "Residence" msgstr "" -#: glade.c:1401 +#: glade.c:1509 msgid "Restrict data on living people" msgstr "" -#: glade.c:1404 +#: glade.c:1512 msgid "Restrict information on living people" msgstr "" -#: glade.c:1906 +#: glade.c:2053 msgid "Retirement" msgstr "" -#: glade.c:2381 +#: glade.c:2536 msgid "Return to the index of people" msgstr "" -#: glade.c:1407 +#: glade.c:1515 msgid "Revert to an older revision" msgstr "" -#: glade.c:1410 +#: glade.c:1518 msgid "Revert to an older version from revision control" msgstr "" -#: glade.c:1413 +#: glade.c:1521 msgid "Revert to last saved database" msgstr "" -#: glade.c:1416 +#: glade.c:1524 msgid "Revision" msgstr "" -#: glade.c:1419 -msgid "Revision Control" -msgstr "" - -#: glade.c:1422 +#: glade.c:1527 msgid "Revision Control Comment" msgstr "" -#: glade.c:1425 +#: glade.c:1530 +msgid "Revison Control" +msgstr "" + +#: glade.c:1533 msgid "Right Margin" msgstr "" -#: glade.c:1428 +#: glade.c:1536 msgid "Run a tool" msgstr "" -#: glade.c:1431 +#: glade.c:1539 msgid "S" msgstr "" -#: glade.c:1434 +#: glade.c:1542 msgid "Save" msgstr "" -#: glade.c:1437 +#: glade.c:1545 msgid "Save Ancestor Chart" msgstr "" -#: glade.c:1440 +#: glade.c:1548 msgid "Save Ancestor Report" msgstr "" -#: glade.c:1445 +#: glade.c:1553 msgid "Save As" msgstr "" -#: glade.c:1448 +#: glade.c:1556 msgid "Save As..." msgstr "" -#: glade.c:1451 +#: glade.c:1559 msgid "Save Data" msgstr "" -#: glade.c:1454 +#: glade.c:1562 msgid "Save Descendant Report" msgstr "" -#: glade.c:1457 +#: glade.c:1565 msgid "Save Family Group Report" msgstr "" -#: glade.c:1460 +#: glade.c:1568 msgid "Save File" msgstr "" -#: glade.c:1463 +#: glade.c:1571 msgid "Save Filters" msgstr "" -#: glade.c:1466 +#: glade.c:1574 msgid "Save complex filter as:" msgstr "" -#: glade.c:1469 +#: glade.c:1577 msgid "Save data as a spreadsheet" msgstr "" -#: glade.c:2030 +#: glade.c:2173 #, c-format msgid "Saving %s ..." msgstr "" -#: glade.c:2326 +#: glade.c:1580 +msgid "Sealed to Parents" +msgstr "" + +#: glade.c:2481 msgid "" "Searches the entire database and attempts to extract titles and nicknames " "that may be embedded in a person's given name field." msgstr "" -#: glade.c:2320 +#: glade.c:2475 msgid "" "Searches the entire database, looking for individual entries that may " "represent the same person." msgstr "" -#: glade.c:2137 glade.c:2222 +#: glade.c:2288 glade.c:2377 msgid "Second" msgstr "" -#: glade.c:1472 glade.c:2075 +#: glade.c:1583 glade.c:2224 msgid "Second Person" msgstr "" -#: glade.c:1475 +#: glade.c:1586 msgid "Select" msgstr "" -#: glade.c:1478 +#: glade.c:1589 msgid "Select File" msgstr "" -#: glade.c:1481 +#: glade.c:1592 msgid "Select a Media Object" msgstr "" -#: glade.c:1484 +#: glade.c:1595 msgid "Select a report from those available on the left." msgstr "" -#: glade.c:1487 +#: glade.c:1598 msgid "Select a tool from those available on the left." msgstr "" -#: glade.c:1490 +#: glade.c:1601 msgid "Select an image" msgstr "" -#: glade.c:1493 +#: glade.c:1604 msgid "Select existing person" msgstr "" -#: glade.c:1496 +#: glade.c:1607 msgid "Select existing person as spouse" msgstr "" -#: glade.c:1499 +#: glade.c:1610 msgid "Select information source" msgstr "" -#: glade.c:1502 +#: glade.c:1613 msgid "Select the title for the merged place" msgstr "" -#: glade.c:1937 +#: glade.c:1616 +msgid "Selects the calendar format for display" +msgstr "" + +#: glade.c:2074 msgid "September" msgstr "" -#: glade.c:2152 glade.c:2237 +#: glade.c:2303 glade.c:2392 msgid "Seventeenth" msgstr "" -#: glade.c:2142 glade.c:2227 +#: glade.c:2293 glade.c:2382 msgid "Seventh" msgstr "" -#: glade.c:2179 +#: glade.c:2330 #, c-format msgid "She died in the year %s" msgstr "" -#: glade.c:2178 +#: glade.c:2329 #, c-format msgid "She died in the year %s in %s" msgstr "" -#: glade.c:2175 +#: glade.c:2326 #, c-format msgid "She died on %s" msgstr "" -#: glade.c:2174 +#: glade.c:2325 #, c-format msgid "She died on %s in %s" msgstr "" -#: glade.c:1505 +#: glade.c:1619 msgid "Show Detail Flags in display lists" msgstr "" -#: glade.c:1508 +#: glade.c:1622 msgid "Show active person's anscestors" msgstr "" -#: glade.c:1511 +#: glade.c:1625 +msgid "Show calendar format selection menu" +msgstr "" + +#: glade.c:1628 msgid "Show index numbers in child list" msgstr "" -#: glade.c:1514 +#: glade.c:1631 msgid "Show persons that do not match the filtering rule" msgstr "" -#: glade.c:1517 +#: glade.c:1634 msgid "Single" msgstr "" -#: glade.c:1520 +#: glade.c:1637 msgid "Single (scaled)" msgstr "" -#: glade.c:2151 glade.c:2236 +#: glade.c:2302 glade.c:2391 msgid "Sixteenth" msgstr "" -#: glade.c:2141 glade.c:2226 +#: glade.c:2292 glade.c:2381 msgid "Sixth" msgstr "" -#: glade.c:1523 +#: glade.c:1640 msgid "Size" msgstr "" -#: glade.c:1912 +#: glade.c:2059 msgid "Social Security Number" msgstr "" -#: glade.c:1526 +#: glade.c:1643 msgid "SoundEx Code" msgstr "" -#: glade.c:1529 +#: glade.c:1646 msgid "SoundEx Code Generator" msgstr "" -#: glade.c:1532 glade.c:2064 glade.c:2126 glade.c:2127 +#: glade.c:1649 glade.c:2208 glade.c:2271 glade.c:2272 glade.c:2279 +#: glade.c:2280 msgid "Source" msgstr "" -#: glade.c:1535 +#: glade.c:1652 msgid "Source Editor" msgstr "" -#: glade.c:1538 +#: glade.c:1655 msgid "Source Information" msgstr "" -#: glade.c:1541 +#: glade.c:1658 msgid "Source Reference Selection" msgstr "" -#: glade.c:1545 glade.c:2372 +#: glade.c:1662 glade.c:2527 msgid "Sources" msgstr "" -#: glade.c:1548 glade.c:2283 +#: glade.c:1665 glade.c:2438 msgid "Spouse" msgstr "" -#: glade.c:1551 +#: glade.c:1668 +msgid "Spouse Sealing" +msgstr "" + +#: glade.c:1671 msgid "Spouses" msgstr "" -#: glade.c:1555 +#: glade.c:1674 +msgid "Standard GEDCOM 5.5" +msgstr "" + +#: glade.c:1678 msgid "State" msgstr "" -#: glade.c:1559 +#: glade.c:1682 msgid "State/Province" msgstr "" -#: glade.c:1562 +#: glade.c:1685 msgid "Status" msgstr "" -#: glade.c:1565 +#: glade.c:1688 msgid "Status Bar" msgstr "" -#: glade.c:1569 glade.c:1857 +#: glade.c:1692 glade.c:2002 msgid "Stepchild" msgstr "" -#: glade.c:1575 +#: glade.c:1698 msgid "Style Editor" msgstr "" -#: glade.c:1578 +#: glade.c:1701 msgid "Style Name" msgstr "" -#: glade.c:1583 +#: glade.c:1707 msgid "Styles" msgstr "" -#: glade.c:1586 +#: glade.c:1710 msgid "Suffix" msgstr "" -#: glade.c:2303 glade.c:2371 glade.c:2373 +#: glade.c:2458 glade.c:2526 glade.c:2528 #, c-format msgid "Summary of %s" msgstr "" -#: glade.c:2365 +#: glade.c:2520 msgid "Summary of the database" msgstr "" -#: glade.c:1590 +#: glade.c:1714 msgid "Surname" msgstr "" -#: glade.c:1850 +#: glade.c:1995 msgid "Surname, Firstname" msgstr "" -#: glade.c:1593 +#: glade.c:1717 +msgid "Target" +msgstr "" + +#: glade.c:1720 msgid "Target Directory" msgstr "" -#: glade.c:1600 +#: glade.c:1727 msgid "Template" msgstr "" -#: glade.c:2145 glade.c:2230 +#: glade.c:1730 +msgid "Temple" +msgstr "" + +#: glade.c:2296 glade.c:2385 msgid "Tenth" msgstr "" -#: glade.c:1603 +#: glade.c:1733 msgid "Text" msgstr "" -#: glade.c:1606 +#: glade.c:1736 msgid "Text Color" msgstr "" -#: glade.c:2056 +#: glade.c:2200 msgid "That is not a valid file name." msgstr "" -#: glade.c:1609 +#: glade.c:1739 msgid "The default directory for storing databases" msgstr "" -#: glade.c:1612 +#: glade.c:1742 msgid "The default directory for the output of many report generators" msgstr "" -#: glade.c:1615 +#: glade.c:1745 msgid "The default directory for the output of the Web Site report generators" msgstr "" -#: glade.c:2053 +#: glade.c:2197 msgid "The marker '' was not in the template" msgstr "" -#: glade.c:2338 +#: glade.c:2492 #, c-format msgid "Their common ancestor is %s." msgstr "" -#: glade.c:2339 +#: glade.c:2493 #, c-format msgid "There is no relationship between %s and %s." msgstr "" -#: glade.c:2138 glade.c:2223 +#: glade.c:2289 glade.c:2378 msgid "Third" msgstr "" -#: glade.c:2148 glade.c:2233 +#: glade.c:2299 glade.c:2388 msgid "Thirteenth" msgstr "" -#: glade.c:2094 -msgid "This is probably due to an incomplete python or PyXML installation" -msgstr "" - -#: glade.c:2073 +#: glade.c:2221 msgid "This media object is currently being used. Delete anyway?" msgstr "" -#: glade.c:2083 +#: glade.c:2232 msgid "This place is currently being used. Delete anyway?" msgstr "" -#: glade.c:2123 +#: glade.c:2268 msgid "This source is currently being used. Delete anyway?" msgstr "" -#: glade.c:1621 +#: glade.c:1751 msgid "Title" msgstr "" -#: glade.c:1624 +#: glade.c:1754 msgid "Tool Selection" msgstr "" -#: glade.c:1627 +#: glade.c:1757 +msgid "Toolbar" +msgstr "" + +#: glade.c:1760 msgid "Tools" msgstr "" -#: glade.c:2210 +#: glade.c:2361 #, c-format msgid "Total ancestors in generations %d to -1 is %d .\n" msgstr "" -#: glade.c:2361 +#: glade.c:2515 msgid "Total number of media object references" msgstr "" -#: glade.c:2363 +#: glade.c:2517 msgid "Total size of images" msgstr "" -#: glade.c:2147 glade.c:2232 +#: glade.c:2298 glade.c:2387 msgid "Twelfth" msgstr "" -#: glade.c:2155 glade.c:2240 +#: glade.c:2306 glade.c:2395 msgid "Twentieth" msgstr "" -#: glade.c:2163 glade.c:2248 +#: glade.c:2314 glade.c:2403 msgid "Twenty-eighth" msgstr "" -#: glade.c:2160 glade.c:2245 +#: glade.c:2311 glade.c:2400 msgid "Twenty-fifth" msgstr "" -#: glade.c:2156 glade.c:2241 +#: glade.c:2307 glade.c:2396 msgid "Twenty-first" msgstr "" -#: glade.c:2159 glade.c:2244 +#: glade.c:2310 glade.c:2399 msgid "Twenty-fourth" msgstr "" -#: glade.c:2164 glade.c:2249 +#: glade.c:2315 glade.c:2404 msgid "Twenty-ninth" msgstr "" -#: glade.c:2157 glade.c:2242 +#: glade.c:2308 glade.c:2397 msgid "Twenty-second" msgstr "" -#: glade.c:2162 glade.c:2247 +#: glade.c:2313 glade.c:2402 msgid "Twenty-seventh" msgstr "" -#: glade.c:2161 glade.c:2246 +#: glade.c:2312 glade.c:2401 msgid "Twenty-sixth" msgstr "" -#: glade.c:2158 glade.c:2243 +#: glade.c:2309 glade.c:2398 msgid "Twenty-third" msgstr "" -#: glade.c:1630 +#: glade.c:1763 msgid "Type" msgstr "" -#: glade.c:1633 +#: glade.c:1766 msgid "Type Face" msgstr "" -#: glade.c:1636 +#: glade.c:1769 msgid "UNICODE" msgstr "" -#: glade.c:2089 glade.c:2091 +#: glade.c:2238 glade.c:2240 msgid "Uncategorized" msgstr "" -#: glade.c:1639 +#: glade.c:1772 msgid "Underline" msgstr "" -#: glade.c:2358 +#: glade.c:2512 msgid "Unique surnames" msgstr "" -#: glade.c:1643 glade.c:1860 glade.c:1917 glade.c:1922 glade.c:2049 +#: glade.c:1776 glade.c:2005 glade.c:2064 glade.c:2069 glade.c:2193 msgid "Unknown" msgstr "" -#: glade.c:1917 +#: glade.c:2064 msgid "Unknown relationship between a man and woman" msgstr "" -#: glade.c:1915 glade.c:1920 +#: glade.c:2062 glade.c:2067 msgid "Unmarried" msgstr "" -#: glade.c:2023 +#: glade.c:2166 msgid "Unsaved changes exist in the current database\n" msgstr "" -#: glade.c:1647 +#: glade.c:1779 +msgid "Updates the selected address with the above data" +msgstr "" + +#: glade.c:1782 +msgid "Updates the selected attribute with the above data" +msgstr "" + +#: glade.c:1785 msgid "Updates the selected event with the above data" msgstr "" -#: glade.c:1650 +#: glade.c:1788 msgid "Use Revision Control" msgstr "" -#: glade.c:1653 +#: glade.c:1791 msgid "Use SoundEx codes for name matches" msgstr "" -#: glade.c:1656 +#: glade.c:1794 msgid "Use tabbed pages" msgstr "" -#: glade.c:2341 glade.c:2347 glade.c:2369 +#: glade.c:1797 +msgid "User Defined IDs" +msgstr "" + +#: glade.c:2495 glade.c:2501 glade.c:2524 msgid "Utilities" msgstr "" -#: glade.c:1661 +#: glade.c:1802 msgid "Value" msgstr "" -#: glade.c:1664 +#: glade.c:1805 msgid "Verify - Settings" msgstr "" -#: glade.c:2368 +#: glade.c:2523 msgid "Verify the database" msgstr "" -#: glade.c:1667 +#: glade.c:1808 msgid "Version" msgstr "" -#: glade.c:1670 glade.c:1866 +#: glade.c:1811 glade.c:2011 msgid "Very High" msgstr "" -#: glade.c:1673 glade.c:1862 +#: glade.c:1814 glade.c:2007 msgid "Very Low" msgstr "" -#: glade.c:2212 glade.c:2366 +#: glade.c:2363 glade.c:2521 msgid "View" msgstr "" -#: glade.c:2058 +#: glade.c:2202 glade.c:2217 msgid "View in the default viewer" msgstr "" -#: glade.c:1676 +#: glade.c:1817 msgid "Volume/Film/Page" msgstr "" -#: glade.c:2329 glade.c:2330 +#: glade.c:2484 glade.c:2485 #, c-format msgid "Warning: line %d was not understood, so it was ignored." msgstr "" -#: glade.c:1680 +#: glade.c:1821 msgid "Web Address" msgstr "" -#: glade.c:2400 +#: glade.c:2555 msgid "Web Page" msgstr "" -#: glade.c:1683 +#: glade.c:1824 msgid "" "Welcome to Gramps, the Genealogical Research\n" "and Analysis Management Programming System.\n" @@ -3587,266 +3755,270 @@ msgid "" "information." msgstr "" -#: glade.c:1907 +#: glade.c:2054 msgid "Will" msgstr "" -#: glade.c:1696 +#: glade.c:1837 msgid "Women" msgstr "" -#: glade.c:1844 +#: glade.c:1989 msgid "YYYY-MM-DD" msgstr "" -#: glade.c:1845 +#: glade.c:1990 msgid "YYYY.MM.DD" msgstr "" -#: glade.c:1843 +#: glade.c:1988 msgid "YYYY/MM/DD" msgstr "" -#: glade.c:1848 +#: glade.c:1993 msgid "YYYY/MM/DD, YYYY.MM.DD, or YYYY-MM-DD" msgstr "" -#: glade.c:2037 +#: glade.c:2180 msgid "You requested too many people to edit at the same time" msgstr "" -#: glade.c:2084 +#: glade.c:2233 msgid "You requested too many places to edit at the same time" msgstr "" -#: glade.c:1700 +#: glade.c:1841 msgid "ZIP/Postal Code" msgstr "" -#: glade.c:1703 +#: glade.c:1844 msgid "Zoom In" msgstr "" -#: glade.c:1706 +#: glade.c:1847 msgid "Zoom Out" msgstr "" -#: glade.c:1709 +#: glade.c:1850 msgid "_Add Bookmark" msgstr "" -#: glade.c:1712 +#: glade.c:1853 msgid "_Bookmarks" msgstr "" -#: glade.c:1715 +#: glade.c:1856 msgid "_Default Person" msgstr "" -#: glade.c:1718 +#: glade.c:1859 msgid "_Edit" msgstr "" -#: glade.c:1721 +#: glade.c:1862 msgid "_Edit Bookmarks" msgstr "" -#: glade.c:1724 +#: glade.c:1865 msgid "_Export" msgstr "" -#: glade.c:1727 +#: glade.c:1868 msgid "_Family" msgstr "" -#: glade.c:1730 +#: glade.c:1871 +msgid "_Find..." +msgstr "" + +#: glade.c:1874 msgid "_Import" msgstr "" -#: glade.c:1733 +#: glade.c:1877 msgid "_Media" msgstr "" -#: glade.c:1736 +#: glade.c:1880 msgid "_Merge" msgstr "" -#: glade.c:1739 +#: glade.c:1883 msgid "_New File" msgstr "" -#: glade.c:1742 +#: glade.c:1886 msgid "_People" msgstr "" -#: glade.c:1745 +#: glade.c:1889 msgid "_Reports" msgstr "" -#: glade.c:1748 +#: glade.c:1892 msgid "_Revert" msgstr "" -#: glade.c:1751 +#: glade.c:1895 msgid "_Sources" msgstr "" -#: glade.c:1754 +#: glade.c:1898 msgid "_Tools" msgstr "" -#: glade.c:1757 +#: glade.c:1901 msgid "_User's Manual" msgstr "" -#: glade.c:1760 +#: glade.c:1904 msgid "_Writing Extensions" msgstr "" -#: glade.c:1942 glade.c:1956 glade.c:1969 +#: glade.c:2083 glade.c:2091 glade.c:2099 msgid "about" msgstr "" -#: glade.c:1941 glade.c:1954 glade.c:1972 +#: glade.c:2083 glade.c:2102 msgid "abt" msgstr "" -#: glade.c:1943 +#: glade.c:2084 msgid "abt." msgstr "" -#: glade.c:1955 -msgid "abt\\." +#: glade.c:2090 +msgid "abt\\.?" msgstr "" -#: glade.c:1953 glade.c:1963 +#: glade.c:2089 msgid "aft" msgstr "" -#: glade.c:1952 +#: glade.c:2088 msgid "aft." msgstr "" -#: glade.c:1964 -msgid "aft\\." +#: glade.c:2097 +msgid "aft\\.?" msgstr "" -#: glade.c:1951 glade.c:1962 glade.c:1971 glade.c:1974 +#: glade.c:2088 glade.c:2096 glade.c:2101 glade.c:2104 msgid "after" msgstr "" -#: glade.c:1947 glade.c:1960 +#: glade.c:2086 glade.c:2094 msgid "around" msgstr "" -#: glade.c:1949 glade.c:1966 +#: glade.c:2087 msgid "bef" msgstr "" -#: glade.c:1950 +#: glade.c:2087 msgid "bef." msgstr "" -#: glade.c:1965 -msgid "bef\\." +#: glade.c:2098 +msgid "bef\\.?" msgstr "" -#: glade.c:1948 glade.c:1961 glade.c:1970 glade.c:1973 +#: glade.c:2086 glade.c:2095 glade.c:2100 glade.c:2103 msgid "before" msgstr "" -#: glade.c:1763 +#: glade.c:1907 msgid "bottom" msgstr "" -#: glade.c:2364 +#: glade.c:2518 msgid "bytes" msgstr "" -#: glade.c:1766 +#: glade.c:1910 msgid "center" msgstr "" -#: glade.c:1946 glade.c:1959 +#: glade.c:2085 glade.c:2093 msgid "circa" msgstr "" -#: glade.c:1769 +#: glade.c:1913 msgid "cm" msgstr "" -#: glade.c:1774 +#: glade.c:1919 msgid "default" msgstr "" -#: glade.c:1777 +#: glade.c:1922 msgid "email" msgstr "" -#: glade.c:1944 glade.c:1957 +#: glade.c:2084 msgid "est" msgstr "" -#: glade.c:1945 +#: glade.c:2085 msgid "est." msgstr "" -#: glade.c:1958 -msgid "est\\." +#: glade.c:2092 +msgid "est\\.?" msgstr "" -#: glade.c:1780 glade.c:1853 +#: glade.c:1925 glade.c:1998 msgid "female" msgstr "" -#: glade.c:1927 glade.c:1928 +#: glade.c:2077 glade.c:2081 glade.c:2082 msgid "from" msgstr "" -#: glade.c:1783 +#: glade.c:1928 msgid "gramps ID" msgstr "" -#: glade.c:1786 +#: glade.c:1931 msgid "justify" msgstr "" -#: glade.c:1789 +#: glade.c:1934 msgid "left" msgstr "" -#: glade.c:1792 glade.c:1852 +#: glade.c:1937 glade.c:1997 msgid "male" msgstr "" -#: glade.c:1795 +#: glade.c:1940 msgid "name" msgstr "" -#: glade.c:1798 +#: glade.c:1943 msgid "pt" msgstr "" -#: glade.c:1801 +#: glade.c:1946 msgid "right" msgstr "" -#: glade.c:1804 +#: glade.c:1949 msgid "roman (Times)" msgstr "" -#: glade.c:1807 +#: glade.c:1952 msgid "swiss (Arial, Helvetica)" msgstr "" -#: glade.c:1810 glade.c:1927 glade.c:1928 +#: glade.c:1955 glade.c:2077 glade.c:2081 glade.c:2082 msgid "to" msgstr "" -#: glade.c:1813 +#: glade.c:1958 msgid "top" msgstr "" -#: glade.c:1816 glade.c:1854 glade.c:2301 glade.c:2386 +#: glade.c:1961 glade.c:1999 glade.c:2122 glade.c:2456 glade.c:2541 msgid "unknown" msgstr "" diff --git a/gramps/src/sort.py b/gramps/src/sort.py index 360520a0c..db6af483b 100644 --- a/gramps/src/sort.py +++ b/gramps/src/sort.py @@ -17,25 +17,39 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +""" +Provides sorting routines for use in GRAMPS. Since these functions are +intended to provide fast sorting, they tend to bypass access methods, +and directly use class members. For this reason, care needs to be taken +to make sure these remain in sync with the rest of the design. +""" +#------------------------------------------------------------------------- +# +# Imported Modules +# +#------------------------------------------------------------------------- import string -from Date import compare_dates, UNDEF +import Date #------------------------------------------------------------------------- # -# +# Functions # #------------------------------------------------------------------------- + def build_sort_name(n): + """Builds a name from a RelLib.Name instance that is suitable for + use as a sort key in a GtkCList. The name is converted to upper case + to provide for case-insenstive sorting""" return "%-25s%-30s%s" % \ (string.upper(n.Surname),string.upper(n.FirstName),string.upper(n.Suffix)) -#------------------------------------------------------------------------- -# -# -# -#------------------------------------------------------------------------- -def build_sort_event(n): +def build_sort_date(n): + """Builds a date from a Date.Date instance that is suitable for + use as a sort key in a GtkCList. The resultant string is in the format + of YYYYMMDD. Unknown values are given as all nines, so that the + appear at the end""" y = n.start.year if y < 0: y = 9999 @@ -47,110 +61,32 @@ def build_sort_event(n): d = 99 return "%04d%02d%02d" % (y,m,d) -#------------------------------------------------------------------------- -# -# -# -#------------------------------------------------------------------------- -def fast_name_sort(list): - nlist = map(build_sort_name,list) - nlist.sort() - return map(lambda(key,x): x, nlist) +def by_last_name(first, second): + """Sort routine for comparing two last names. If last names are equal, + uses the given name and suffix""" + u = string.upper + name1 = first.PrimaryName + name2 = second.PrimaryName -#------------------------------------------------------------------------- -# -# -# -#------------------------------------------------------------------------- -def reverse_name_sort(list): - nlist = map(build_sort_name,list) - nlist.sort() - nlist.reverse() - return map(lambda(key,x): x, nlist) - -#------------------------------------------------------------------------- -# -# -# -#------------------------------------------------------------------------- -def fast_birth_sort(list): - nlist = map(build_sort_event,list) - nlist.sort() - return map(lambda(key,x): x, nlist) - -#------------------------------------------------------------------------- -# -# -# -#------------------------------------------------------------------------- -def reverse_birth_sort(list): - nlist = map(build_sort_event,list) - nlist.sort() - nlist.reverse() - return map(lambda(key,x): x, nlist) - -#------------------------------------------------------------------------- -# -# -# -#------------------------------------------------------------------------- -def fast_death_sort(list): - nlist = map(build_sort_event,list) - nlist.sort() - return map(lambda(key,x): x, nlist) - -#------------------------------------------------------------------------- -# -# -# -#------------------------------------------------------------------------- -def reverse_death_sort(list): - nlist = map(build_sort_event,list) - nlist.sort() - nlist.reverse() - return map(lambda(key,x): x, nlist) - -#------------------------------------------------------------------------- -# -# -# -#------------------------------------------------------------------------- -def by_last_name(first, second) : - - name1 = first.getPrimaryName() - name2 = second.getPrimaryName() - - fsn = string.upper(name1.getSurname()) - ssn = string.upper(name2.getSurname()) + fsn = u(name1.Surname) + ssn = u(name2.Surname) if fsn == ssn : - ffn = string.upper(name1.getFirstName()) - sfn = string.upper(name2.getFirstName()) + ffn = u(name1.FirstName) + sfn = u(name2.FirstName) if ffn == sfn : - return cmp(string.upper(name1.getSuffix()), string.upper(name2.getSuffix())) + return cmp(u(name1.Suffix), u(name2.Suffix)) else : return cmp(ffn, sfn) else : return cmp(fsn, ssn) -#------------------------------------------------------------------------- -# -# -# -#------------------------------------------------------------------------- -def by_last_name_backwards(first, second) : - return by_last_name(second,first) - -#------------------------------------------------------------------------- -# -# -# -#------------------------------------------------------------------------- def by_birthdate(first, second) : - + """Sort routine for comparing two people by birth dates. If the birth dates + are equal, sorts by name""" date1 = first.getBirth().getDateObj() date2 = second.getBirth().getDateObj() - val = compare_dates(date1,date2) + val = Date.compare_dates(date1,date2) if val == 0: return by_last_name(first,second) return val