diff --git a/src/RelLib.py b/src/RelLib.py index 9e0e6bd8a..3f569820b 100644 --- a/src/RelLib.py +++ b/src/RelLib.py @@ -1838,11 +1838,6 @@ class SourceRef(Persistent): """Creates a unique instance of the current note""" self.comments = Note(self.comments.get()) -#------------------------------------------------------------------------- -# -# -# -#------------------------------------------------------------------------- class GrampsDB(Persistent): """GRAMPS database object. This object is a base class for other objects.""" diff --git a/src/plugins/DetAncestralReport.py b/src/plugins/DetAncestralReport.py index 47e014256..a9f09a9c2 100644 --- a/src/plugins/DetAncestralReport.py +++ b/src/plugins/DetAncestralReport.py @@ -23,6 +23,7 @@ import RelLib import os +import sort import intl _ = intl.gettext @@ -53,6 +54,8 @@ class DetAncestorReport(Report): self.max_generations = max self.pgbrk = pgbrk self.doc = doc + self.genIDs = {} + self.prevGenIDs= {} try: self.doc.open(output) @@ -75,63 +78,124 @@ class DetAncestorReport(Report): self.filter(family.getMother(),(index*2)+1) - def write_children(self, family): - """ List children """ + def write_children(self, family, rptOptions): + """ List children + Statement formats: + Child of MOTHER and FATHER is: + Children of MOTHER and FATHER are: + + NAME Born: DATE PLACE Died: DATE PLACE f + NAME Born: DATE PLACE Died: DATE e + NAME Born: DATE PLACE Died: PLACE d + NAME Born: DATE PLACE c + NAME Born: DATE 8 + NAME Born: PLACE Died: DATE PLACE 7 + NAME Born: PLACE Died: DATE 6 + NAME Born: PLACE Died: PLACE 5 + NAME Born: PLACE 4 + NAME Died: DATE 2 + NAME Died: DATE PLACE 3 + NAME Died: PLACE 1 + NAME 0 + """ - #print "family: ", family.__dict__ num_children= len(family.getChildList()) - #print "Children= ", len(family.getChildList()) if num_children > 0: self.doc.start_paragraph("ChildTitle") - mom = family.getMother() - dad = family.getFather() - if mom: - mother = mom.getPrimaryName().getRegularName() - if dad: - father = dad.getPrimaryName().getRegularName() - + if family.getMother() != None: + mother= family.getMother().getPrimaryName().getRegularName() + else: mother= "unknown" + if family.getFather() != None: + father= family.getFather().getPrimaryName().getRegularName() + else: father= "unknown" + self.doc.start_bold() if num_children == 1: - if mom and dad: - self.doc.write_text(_("Child of %s and %s is:") % (mother, father)) - elif mom: - self.doc.write_text(_("Child of %s is:") % mother) - elif dad: - self.doc.write_text(_("Child of %s is:") % father) - else: - if mom and dad: - self.doc.write_text(_("Children of %s and %s are:") % (mother, father)) - elif mom: - self.doc.write_text(_("Children of %s are:") % mother) - elif dad: - self.doc.write_text(_("Children of %s are:") % father) - + self.doc.write_text(_("Child of %s and %s is:") % (mother, father)) + else: self.doc.write_text(_("Children of %s and %s are:") % (mother, father)) + self.doc.end_bold() self.doc.end_paragraph() for child in family.getChildList(): self.doc.start_paragraph("ChildList") - t= child.getPrimaryName().getRegularName() - #print "getBirth()", child.getBirth().__dict__ - if child.getBirth().getDate() != "" or \ - child.getBirth().getPlaceName() != "": - #print child.getBirth().getPlace().__dict__ - t= t+ _(" Born: ")+child.getBirth().getDate() + \ - " "+child.getBirth().getPlaceName() - #print "getDeath()", child.getDeath().__dict__ - if child.getDeath().getPlace() != None: - # print child.getDeath().getPlace().__dict__ - if child.getDeath().getDate() != "" or \ - child.getDeath().getPlaceName() != "": - t= t+ _(" Died: ")+child.getDeath().getDate() + \ - " "+child.getDeath().getPlaceName() - self.doc.write_text(_(t)) - self.doc.end_paragraph() + name= child.getPrimaryName().getRegularName() + birth= child.getBirth() + death= child.getDeath() + if rptOptions.childRef == reportOptions.Yes: + childID= child.getId() + if self.prevGenIDs.get(childID) != None: + name= "[" + str(self.prevGenIDs.get(childID)) + "] "+ name + #print "Child List: <", birth.getDate(), ">", birth.getPlaceName() + if birth.getDate() != "": + #print birth.getPlaceName() + if birth.getPlaceName() != None: + if death.getDate() != "": + if death.getPlaceName() != "": + self.doc.write_text(_("- %s Born: %s %s Died: %s %s") % \ + (name, birth.getDate(), birth.getPlaceName(), + death.getDate(), death.getPlaceName())) # f + else: + self.doc.write_text(_("- %s Born: %s %s Died: %s") % \ + (name, birth.getDate(), birth.getPlaceName(), + death.getDate())) # e + elif death.getPlaceName() != "": + self.doc.write_text(_("- %s Born: %s %s Died: %s") % \ + (name, birth.getDate(), birth.getPlaceName(), + death.getPlaceName())) # d + else: self.doc.write_text(_("- %s Born: %s %s") % \ + (name, birth.getDate(), birth.getPlaceName())) # c + else: + if death.getDate() != "": + if death.getPlaceName() != "": + self.doc.write_text(_("- %s Born: %s Died: %s %s") % \ + (name, birth.getDate(), death.getDate(), \ + death.getPlaceName())) # b + else: + self.doc.write_text(_("- %s Born: %s Died: %s") % \ + (name, birth.getDate(), death.getDate())) # a + elif death.PlaceName() != "": + self.doc.write_text(_("- %s Born: %s Died: %s") % \ + (name, birth.getDate(), birth.getPlaceName())) # 9 + else: self.doc.write_text(_("- %s Born: %s") % \ + (name, birth.getDate())) # 8 + else: + if birth.getPlaceName() != None: + if death.getDate() != "": + if death.getPlaceName() != "": + self.doc.write_text(_("- %s Born: %s Died: %s %s") % \ + (name, birth.getPlaceName(), \ + death.getDate(), death.getPlaceName())) # 7 + else: + self.doc.write_text(_("- %s Born: %s Died: %s") % \ + (name, birth.getPlaceName(), death.getDate())) # 6 + elif death.getPlaceName() != "": + self.doc.write_text(_("- %s Born: %s %s Died: %s") % \ + (name, birth.getPlaceName(), death.getPlaceName())) # 5 + else: self.doc.write_text(_("- %s Born: %s") % \ + (name, birth.getPlaceName())) # 4 + else: + if death.getDate() != "": + if death.getPlaceName() != "": + self.doc.write_text(_("- %s Died: %s %s") % \ + (name, death.getDate(), death.getPlaceName())) # 3 + else: + self.doc.write_text(_("- %s Died: %s") % \ + (name, death.getDate())) # 2 + elif death.getPlaceName() != "": + self.doc.write_text(_("- %s Died: %s") % \ + (name, death.getPlaceName())) # 1 + else: self.doc.write_text(_("- %s") % name) # 0 + self.doc.end_paragraph() def write_person(self, key, rptOptions): """Output birth, death, parentage, marriage and notes information """ self.doc.start_paragraph("Entry","%s." % str(key)) + person = self.map[key] + if rptOptions.addImages == reportOptions.Yes: + self.insert_images(person, rptOptions.imageAttrTag) + name = person.getPrimaryName().getRegularName() if rptOptions.firstName == reportOptions.Yes: @@ -145,6 +209,17 @@ class DetAncestorReport(Report): self.doc.write_text(name) self.doc.end_bold() + if rptOptions.dupPersons == reportOptions.Yes: + # Check for duplicate record (result of distant cousins marrying) + keys = self.map.keys() + keys.sort() + for dkey in keys: + if dkey >= key: break + if self.map[key].getId() == self.map[dkey].getId(): + self.doc.write_text(_(" is the same person as [%s].") % str(dkey)) + self.doc.end_paragraph() + return 1 # Duplicate person + # Check birth record birth = person.getBirth() if birth: @@ -157,25 +232,30 @@ class DetAncestorReport(Report): if key == 1: self.write_mate(person, rptOptions) if person.getNote() != "" and rptOptions.includeNotes == reportOptions.Yes: - self.doc.start_paragraph("Entry") + self.doc.start_paragraph("NoteHeader") + self.doc.start_bold() self.doc.write_text(_("Notes for %s" % name)) + self.doc.end_bold() self.doc.end_paragraph() self.doc.start_paragraph("Entry") self.doc.write_text(person.getNote()) self.doc.end_paragraph() + return 0 # Not duplicate person + def write_birth(self, person, rptOptions): - # Check birth record - # Statement formats name precedes this - # was born on DATE. - # was born on ________. - # was born on Date in Place. - # was born on ________ in PLACE. - # was born in ____________. - # was born in the year YEAR. - # was born in PLACE. - # was born in ____________. - # . + """ Check birth record + Statement formats name precedes this + was born on DATE. + was born on ________. + was born on Date in Place. + was born on ________ in PLACE. + was born in ____________. + was born in the year YEAR. + was born in PLACE. + was born in ____________. + """ + birth = person.getBirth() if birth: date = birth.getDateObj().get_start_date() @@ -209,14 +289,35 @@ class DetAncestorReport(Report): return def write_death(self, person, firstName, rptOptions): + """ Write obit sentence + Statement format: DPHRASE APHRASE BPHRASE + DPHRASE= + FIRSTNAME died on FULLDATE in PLACE + FIRSTNAME died on FULLDATE + FIRSTNAME died in PLACE + FIRSTNAME died on FULLDATE in PLACE + FIRSTNAME died in YEAR in PLACE + FIRSTNAME died in YEAR + + APHRASE= see calcAge + at the age of NUMBER UNIT(S) + null + + where + UNIT= year | month | day + UNITS= years | months | days + + BPHRASE= + , and was buried on FULLDATE in PLACE. + , and was buried on FULLDATE. + , and was buried in PLACE. + . + """ t= "" death = person.getDeath() - #print "death=", death, death.__dict__ if death != None: date = death.getDateObj().get_start_date() place = death.getPlaceName() - #print "date=", date.getDate(), "place=", place, "day= ", date.getDay(), \ - # "month= ", date.getMonth(), "year= ", date.getYear() if place[-1:] == '.': place = place[:-1] elif place == "" and rptOptions.blankPlace == reportOptions.Yes: @@ -244,18 +345,17 @@ class DetAncestorReport(Report): elif place != "": t= _(" %s died in %s") % (firstName, place) - if rptOptions.calcAgeFlag == reportOptions.Yes: t= t + rptOptions.calcAge(person) if t != "": - self.doc.write_text(t+".") - t= "" + self.doc.write_text(t) + else: return + t= "" famList= person.getFamilyList() if len(famList) > 0: for fam in famList: - #print "fam event=", fam.__dict__ buried= None if buried: date = buried.getDateObj().get_start_date() @@ -277,11 +377,21 @@ class DetAncestorReport(Report): elif fulldate == "" and place != "": t= _(" And %s was buried in %s.") % (firstName, place) - if t != "": - self.doc.write_text(t) - t= "" + if t != "": + self.doc.write_text(t) + else: self.doc.write_text(".") def write_parents(self, person, firstName): + """ Ouptut parents sentence + Statement format: + + FIRSTNAME was the son of FATHER and MOTHER. + FIRSTNAME was the son of FATHER. + FIRSTNAME was the son of MOTHER. + FIRSTNAME was the daughter of FATHER and MOTHER. + FIRSTNAME was the daughter of FATHER. + FIRSTNAME was the daughter of MOTHER. + """ ext_family= person.getMainParents() if ext_family != None: if ext_family.getFather() != None: @@ -317,32 +427,47 @@ class DetAncestorReport(Report): def write_marriage(self, person, rptOptions): + """ Output marriage sentence + HE/SHE married SPOUSE on FULLDATE in PLACE. + HE/SHE married SPOUSE on FULLDATE. + HE/SHE married SPOUSE in PLACE. + He/SHE married SPOUSE + """ famList= person.getFamilyList() - #print "Marriage: len of famList=", len(famList) if len(famList) > 0: + fam_num= 0 for fam in famList: - #print "Marriage:fam", fam.__dict__ - spouse = '' + fam_num= fam_num + 1 + spouse= "" if person.getGender() == RelLib.Person.male: if fam.getMother() != None: spouse= fam.getMother().getPrimaryName().getRegularName() - heshe= _("He") + if fam_num == 1: + heshe= _("He") + elif fam_num < len(famList): + heshe= _(",") + else: heshe= _("and he") else: - heshe= _("She") + if fam_num == 1: + heshe= _("She") + elif fam_num < len(famList): + heshe= _(",") + else: heshe= _("and she") + if fam.getFather() != None: spouse= fam.getFather().getPrimaryName().getRegularName() marriage= fam.getMarriage() + fulldate= "" + place= "" if marriage != None: if marriage.getPlace() != None and \ marriage.getPlaceName() != "": place= marriage.getPlaceName() elif rptOptions.blankPlace == reportOptions.Yes: place= "____________" - else: place= "" date= marriage.getDateObj() - fulldate= "" if date != None: if date.getYearValid(): if date.getDayValid() and date.getMonthValid() and \ @@ -351,32 +476,32 @@ class DetAncestorReport(Report): elif rptOptions.blankDate == reportOptions.Yes: fulldate= "__________" - if spouse != "": - if fulldate == "" and place == "": - t= _(" %s married %s." % (heshe, spouse)) - elif fulldate == "" and place != "": - t= _(" %s married %s in %s." % (heshe, spouse, place)) - elif fulldate != "" and place == "": - t= _(" %s married %s on %s." % (heshe, spouse, fulldate)) - else: t= _(" %s married %s on %s in %s." % \ - (heshe, spouse, fulldate, place)) - else: - if fulldate == "" and place == "": - t= _(" %s married.") - elif fulldate == "" and place != "": - t= _(" %s married in %s." % (heshe, place)) - elif fulldate != "" and place == "": - t= _(" %s married on %s." % (heshe, fulldate)) - else: t= _(" %s married on %s in %s." % \ - (heshe, fulldate, place)) + if spouse != "": + if fulldate == "" and place == "": + t= _(" %s married %s" % (heshe, spouse)) + elif fulldate == "" and place != "": + t= _(" %s married %s in %s" % (heshe, spouse, place)) + elif fulldate != "" and place == "": + t= _(" %s married %s on %s" % (heshe, spouse, fulldate)) + else: t= _(" %s married %s on %s in %s" % \ + (heshe, spouse, fulldate, place)) + else: + if fulldate == "" and place == "": + t= _(" %s married") + elif fulldate == "" and place != "": + t= _(" %s married in %s" % (heshe, place)) + elif fulldate != "" and place == "": + t= _(" %s married on %s" % (heshe, fulldate)) + else: t= _(" %s married on %s in %s" % \ + (heshe, fulldate, place)) - self.doc.write_text(t) + if t != "": self.doc.write_text(t) + if fam_num == len(famList): self.doc.write_text(".") def write_mate(self, mate, rptOptions): """Output birth, death, parentage, marriage and notes information """ famList= mate.getFamilyList() - #print "len of famList=", len(famList) if len(famList) > 0: for fam in famList: person= "" @@ -395,6 +520,10 @@ class DetAncestorReport(Report): if person != "": self.doc.start_paragraph("Entry") + + if rptOptions.addImages == reportOptions.Yes: + self.insert_images(ind, rptOptions.imageAttrTag) + if rptOptions.firstName == reportOptions.No: firstName= heshe @@ -408,8 +537,62 @@ class DetAncestorReport(Report): self.doc.end_paragraph() - if rptOptions.listChildren == reportOptions.Yes: - self.write_children(fam) + if rptOptions.listChildren == reportOptions.Yes \ + and mate.getGender() == RelLib.Person.male: + self.write_children(fam, rptOptions) + + #-------------------------------------------------------------------- + # + # + # + #-------------------------------------------------------------------- + def insert_images(self, person, tag): + + photos= person.getPhotoList() + for photo in photos : + attribs= photo.getAttributeList() + for attrib in attribs : + if attrib.getType() == tag: + vlist= string.split(attrib.getValue()) + if vlist[0] == 'left' or vlist[0] == 'right': + self.doc.add_photo(photo.ref.getPath(), vlist[0], \ + float(vlist[1]), float(vlist[2])) + + #-------------------------------------------------------------------- + # + # + # + #-------------------------------------------------------------------- + def append_images(self, person, tag): + + photos= person.getPhotoList() + numPhotos= 0 # Number of photos + for photo in photos : + attribs= photo.getAttributeList() + for attrib in attribs : + if attrib.getType() == tag: + vlist= string.split(attrib.getValue()) + if vlist[0] == 'single': + #if numPhotos > 0: + # self.doc.end_paragraph() + + numPhotos= numPhotos + 1 + if numPhotos == 1: + self.doc.start_paragraph("Entry") + self.doc.add_photo(photo.ref.getPath(), vlist[0], \ + float(vlist[1]), float(vlist[2])) + #self.doc.end_paragraph() + #numPhotos= 0 + elif vlist[0] == 'row': + numPhotos= numPhotos + 1 + if numPhotos == 1: + self.doc.start_paragraph("Entry") + self.doc.add_photo(photo.ref.getPath(), vlist[0], \ + float(vlist[1]), float(vlist[2])) + + if numPhotos > 0 : + self.doc.end_paragraph() + #-------------------------------------------------------------------- # @@ -441,15 +624,22 @@ class DetAncestorReport(Report): self.doc.write_text(t) self.doc.end_paragraph() generation = generation + 1 - - self.write_person(key, rptOpt) + if rptOpt.childRef == reportOptions.Yes: + self.prevGenIDs= self.genIDs.copy() + self.genIDs.clear() person = self.map[key] - if person.getGender() == RelLib.Person.female and \ - rptOpt.listChildren == reportOptions.Yes and \ - len(person.getFamilyList()) > 0: - family= person.getFamilyList()[0] - self.write_children(family) + self.genIDs[person.getId()]= key + dupPerson= self.write_person(key, rptOpt) + if dupPerson == 0: # Is this a duplicate ind record + if person.getGender() == RelLib.Person.female and \ + rptOpt.listChildren == reportOptions.Yes and \ + len(person.getFamilyList()) > 0: + family= person.getFamilyList()[0] + self.write_children(family, rptOpt) + + if rptOpt.addImages == reportOptions.Yes: + self.append_images(person, rptOpt.imageAttrTag) self.doc.close() @@ -483,7 +673,7 @@ class DetAncestorReportDialog(TextReportDialog): def get_stylesheet_savefile(self): """Where to save styles for this report.""" return "det_ancestor_report.xml" - + #------------------------------------------------------------------------ # # Create output styles appropriate to this report. @@ -498,7 +688,7 @@ class DetAncestorReportDialog(TextReportDialog): para.set_header_level(1) para.set(pad=0.5) self.default_style.add_style("Title",para) - + font = FontStyle() font.set(face=FONT_SANS_SERIF,size=14,italic=1) para = ParagraphStyle() @@ -506,24 +696,31 @@ class DetAncestorReportDialog(TextReportDialog): para.set_header_level(2) para.set(pad=0.5) self.default_style.add_style("Generation",para) - + font = FontStyle() - font.set(face=FONT_SANS_SERIF,size=12,italic=1) + font.set(face=FONT_SANS_SERIF,size=10,italic=0, bold=0) para = ParagraphStyle() para.set_font(font) - para.set_header_level(3) - para.set_left_margin(1.0) # in centimeters + #para.set_header_level(3) + para.set_left_margin(0.0) # in centimeters para.set(pad=0.5) self.default_style.add_style("ChildTitle",para) - + + font = FontStyle() + font.set(face=FONT_SANS_SERIF,size=9) para = ParagraphStyle() - para.set(first_indent=1.0,lmargin=0.0,pad=0.25) + para.set_font(font) + para.set(first_indent=0.0,lmargin=0.0,pad=0.25) self.default_style.add_style("ChildList",para) - + para = ParagraphStyle() - para.set(first_indent=-1.0,lmargin=1.0,pad=0.25) + para.set(first_indent=0.0,lmargin=0.0,pad=0.25) + self.default_style.add_style("NoteHeader",para) + + para = ParagraphStyle() + para.set(first_indent=0.5,lmargin=0.0,pad=0.25) self.default_style.add_style("Entry",para) - + table = TableStyle() table.set_width(1000) table.set_columns(3) @@ -559,84 +756,56 @@ def report(database,person): #------------------------------------------------------------------------ def get_xpm_image(): return [ - "48 48 32 1", + "48 48 4 1", " c None", - ". c #968977", - "+ c #847B6E", - "@ c #7A7062", - "# c #6A655C", - "$ c #5C5854", - "% c #BAB9B6", - "& c #B7AC9C", - "* c #A19C95", - "= c #868686", - "- c #FAFAF9", - "; c #F1EADF", - "> c #E4E3E3", - ", c #D1D1D0", - "' c #9D9385", - ") c #55524C", - "! c #F6F2ED", - "~ c #A6A5A4", - "{ c #CDC8BF", - "] c #413F3F", - "^ c #322E2B", - "/ c #4F4E4C", - "( c #1A1A1A", - "_ c #D8D1C5", - ": c #E6D3B4", - "< c #E2C8A1", - "[ c #E9DAC2", - "} c #EEE2D0", - "| c #B3966E", - "1 c #B89C73", - "2 c #BEA27B", - "3 c #BAA488", + ". c #FFFFFF", + "+ c #C0C0C0", + "@ c #000000", " ", " ", - " .+.+++++@@@#@####$$$#@ ", - " +%%%%%%%%%%%%%%&%&*=$$@ ", - " +%--------------;>,%==') ", - " =%---------------!>,~@{'] ", - " +%----------------!>,$>{=^ ", - " +%----~~~~~~~~~~~~~~~/->{=^ ", - " +%------------------!/-->{=^ ", - " +%-------------------/;-->{=] ", - " +%-------------------/>;-->{') ", - " @%----~~~~~~~~~~~~~~~/{>!-->%'# ", - " @%-------------------/((^]/$@+#@ ", - " +%--------~~~~~~~~~~~~%%~*=+#$]# ", - " @%-------------------->,%%*==+/] ", - " @%----~~~~~~~~~~~~~~~~~~~~%~*=#] ", - " @%--------------------!>>,{%~*@^ ", - " @%--------~~~~~~~~~~~~~~=',{%~+^ ", - " @%------------------!!!!>>,{{&=^ ", - " #%----~~~~~~~~~~~~~~~~***'.{{{=^ ", - " #%-----------------!!!!!;>,_{%.^ ", - " #%--------~~~~~~~~~~~*****':<_'^ ", - " #%---------------!!!!!;;;>>[,{'^ ", - " #%----~~~~~~~~~~*~********':_<*^ ", - " #%--------------!!!!!;;>}}[_:{|^ ", - " #%--------~~~~~~~~~~~~~~~~~[:_'^ ", - " #%------------!!!!;;;;}}}}}[:_|^ ", - " $%----~~~~~~~*~********'*''[:_|^ ", - " #%---------!!!!!!;;>}}}}}}[[:<*^ ", - " $%--------*~~**********''''[::|^ ", - " #%--------!!!!!>;;>}}[}[[[[[::'^ ", - " $%----~~~*~*********''''''':::1^ ", - " $%-----!!!!!>!;>}}}}}[[[[:::::|^ ", - " $%--------********''''''.'.:<:1^ ", - " $%---!!!!!!;;;>}}}}}[[[[:::::<1^ ", - " $%---!~~~~******'''''''.'..:<<2^ ", - " )%-!!!!!!!;>}}}}}[[[[:::::<:<<1^ ", - " )%!!!!!!!!***'''''''.|.....<<<1^ ", - " )%!!!!>;;>;}}}}}[[[[:::::<<<<<|^ ", - " /%!!!!;;;;}}}}}:[[::::::<:<<<<1^ ", - " /&!!;;;;}}}}}[[[:[:::<<:<<<<<<|^ ", - " )~!;;;;;;}}}[}[:[[::::<<<<<<<<|^ ", - " /%;;;;}}}}[}[[[[::::<:<<<<<<<<|^ ", - " /&%%&&&&&&&3323222222121|||||||^ ", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ", + " ", + " ++++++++++++++++++++++++++++++++++ ", + " +................................+ ", + " +................................+ ", + " +...@@@@@@@@@@@@@@@@@@@@@@@@@@...+ ", + " +...@@@@@@@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +................................+ ", + " +.....@@@@@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +........@@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +................................+ ", + " +.....@@@@@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +........@@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +................................+ ", + " +.....@@@@@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +.........@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +................................+ ", + " +.....@@@@@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +.........@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +.........@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +................................+ ", + " +.....@@@@@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +.........@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +................................+ ", + " +.....@@@@@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +.........@@@@@@@@@@@@@@@@@@@@...+ ", + " +................................+ ", + " +................................+ ", + " +................................+ ", + " +................................+ ", + " ++++++++++++++++++++++++++++++++++ ", " ", " ", " "] @@ -714,24 +883,27 @@ class reportOptions: self.calcAgeFlag= reportOptions.Yes #Add Photos and Images to report - self.addImages= reportOptions.Yes + self.addImages= reportOptions.No + #self.imageAttrTag= "DetAncestralReport-H" + self.imageAttrTag= "DetAncestralReport-L" #Omit sensitive information such as birth, christening, marriage # for living after XXXXX date. - #Add photos/images - #self.images.append(key, kname, align, width, height) - #self.images= [] - #self.images.append(1, "TMDeG_72.pjg", Right, 144, 205) + #Omit duplicate persons, occurs when distant cousins marry + self.dupPersons= reportOptions.Yes - #def addImages(self, key= 0, fname= "", align= Right, Width= none, height= None): - #if key == 0 or fname == "" or (align != Left and align != Right): - #print Invalid Image Specification: ke= %s, fname= %s width %s % key, fname, align - #else: - #self.images.append(key, fname, align, width, height) + #Add descendant reference in child list + self.childRef= reportOptions.Yes def calcAge(self, ind): - ### Calulate age ### + """ Calulate age + APHRASE= + at the age of NUMBER UNIT(S) + UNIT= year | month | day + UNITS= years | months | days + null + """ birth= ind.getBirth().getDateObj().get_start_date() death= ind.getDeath().getDateObj().get_start_date() diff --git a/src/po/template.po b/src/po/template.po index 6a4c7b63a..0cd98d195 100644 --- a/src/po/template.po +++ b/src/po/template.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: Wed May 1 16:53:26 2002\n" +"POT-Creation-Date: Fri Jun 21 17:07:47 2002\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -19,24 +19,24 @@ msgstr "" msgid "%s is not a valid file name or does not exist." msgstr "" -#: AddSpouse.py:88 AddSpouse.py:234 +#: AddSpouse.py:91 AddSpouse.py:256 msgid "Choose Spouse/Partner of %s" msgstr "" -#: AddSpouse.py:101 AddSpouse.py:245 const.py:398 const.py:406 -#: plugins/FamilyGroup.py:288 plugins/FamilyGroup.py:290 +#: AddSpouse.py:104 AddSpouse.py:267 const.py:399 const.py:407 +#: plugins/FamilyGroup.py:286 plugins/FamilyGroup.py:288 msgid "Married" msgstr "" -#: AddSpouse.py:179 AddSpouse.py:313 const.py:400 const.py:408 +#: AddSpouse.py:197 AddSpouse.py:333 const.py:401 const.py:409 msgid "Partners" msgstr "" -#: AddrEdit.py:78 +#: AddrEdit.py:80 msgid "Address Editor for %s" msgstr "" -#: AttrEdit.py:83 +#: AttrEdit.py:86 msgid "Attribute Editor for %s" msgstr "" @@ -52,46 +52,47 @@ msgstr "" msgid "Down" msgstr "" -#: Bookmarks.py:108 EditPerson.glade:2084 EditPerson.glade:2780 -#: EditPerson.glade:3215 EditPerson.glade:4040 EditPerson.glade:4642 -#: gramps.glade:1757 gramps.glade:2253 imagesel.glade:1285 imagesel.glade:2286 -#: marriage.glade:938 marriage.glade:1349 places.glade:1216 places.glade:1721 -#: rule.glade:456 rule.glade:854 srcsel.glade:858 styles.glade:247 +#: Bookmarks.py:108 EditPerson.glade:2162 EditPerson.glade:2936 +#: EditPerson.glade:3449 EditPerson.glade:4352 EditPerson.glade:4954 +#: dialog.glade:733 dialog.glade:1311 dialog.glade:2491 dialog.glade:3499 +#: gramps.glade:1758 gramps.glade:2254 imagesel.glade:1285 imagesel.glade:2286 +#: marriage.glade:1016 marriage.glade:1505 places.glade:1216 places.glade:1721 +#: rule.glade:456 rule.glade:854 srcsel.glade:972 styles.glade:247 msgid "Delete" msgstr "" -#: ChooseParents.py:97 ChooseParents.py:98 EditPerson.glade:161 -#: SelectChild.py:101 SelectChild.py:102 SelectChild.py:274 SelectChild.py:275 -#: const.py:121 gramps.glade:5081 gramps.glade:5101 gramps.glade:5240 -#: gramps.glade:5369 gramps.glade:5656 gramps.glade:5677 gramps.glade:5721 -#: gramps.glade:5751 gramps.glade:6698 gramps.glade:6728 gramps.glade:6745 -#: gramps.glade:6775 plugins/EventCmp.py:288 plugins/FamilyGroup.py:138 -#: plugins/GraphViz.py:320 plugins/GraphViz.py:330 +#: ChooseParents.py:106 ChooseParents.py:107 EditPerson.glade:161 +#: SelectChild.py:101 SelectChild.py:102 SelectChild.py:276 SelectChild.py:277 +#: const.py:122 gramps.glade:5294 gramps.glade:5314 gramps.glade:5553 +#: gramps.glade:5573 gramps.glade:5969 gramps.glade:5990 gramps.glade:6034 +#: gramps.glade:6064 gramps.glade:7011 gramps.glade:7041 gramps.glade:7058 +#: gramps.glade:7088 plugins/EventCmp.py:286 plugins/FamilyGroup.py:136 +#: plugins/GraphViz.py:323 plugins/GraphViz.py:333 msgid "Birth" msgstr "" -#: ChooseParents.py:117 +#: ChooseParents.py:126 msgid "Choose the Parents of %s" msgstr "" -#: ChooseParents.py:177 ChooseParents.py:178 gramps_main.py:1588 -#: gramps_main.py:1589 +#: ChooseParents.py:195 ChooseParents.py:196 gramps_main.py:1435 +#: gramps_main.py:1436 msgid "Parent" msgstr "" -#: ChooseParents.py:180 gramps.glade:1899 gramps.glade:5112 -#: gramps_main.py:1592 mergedata.glade:518 mergedata.glade:1180 -#: plugins/FamilyGroup.py:197 plugins/IndivComplete.py:198 +#: ChooseParents.py:198 gramps.glade:1900 gramps.glade:5325 +#: gramps_main.py:1439 mergedata.glade:518 mergedata.glade:1180 +#: plugins/FamilyGroup.py:195 plugins/IndivComplete.py:198 #: plugins/IndivComplete.py:200 plugins/IndivComplete.py:411 -#: plugins/IndivSummary.py:283 plugins/WebPage.py:246 plugins/WebPage.py:249 +#: plugins/IndivSummary.py:283 plugins/WebPage.py:262 plugins/WebPage.py:265 msgid "Mother" msgstr "" -#: ChooseParents.py:181 gramps.glade:1808 gramps.glade:4952 -#: gramps_main.py:1591 mergedata.glade:766 mergedata.glade:1478 -#: plugins/FamilyGroup.py:184 plugins/IndivComplete.py:190 +#: ChooseParents.py:199 gramps.glade:1809 gramps.glade:5065 +#: gramps_main.py:1438 mergedata.glade:766 mergedata.glade:1478 +#: plugins/FamilyGroup.py:182 plugins/IndivComplete.py:190 #: plugins/IndivComplete.py:192 plugins/IndivComplete.py:406 -#: plugins/IndivSummary.py:269 plugins/WebPage.py:245 plugins/WebPage.py:248 +#: plugins/IndivSummary.py:269 plugins/WebPage.py:261 plugins/WebPage.py:264 msgid "Father" msgstr "" @@ -159,23 +160,23 @@ msgstr "" msgid "to" msgstr "" -#: Date.py:263 EventEdit.py:137 dialog.glade:512 dialog.glade:1889 +#: Date.py:263 EventEdit.py:141 dialog.glade:409 dialog.glade:2215 msgid "Julian" msgstr "" -#: Date.py:265 EventEdit.py:137 dialog.glade:512 dialog.glade:1889 +#: Date.py:265 EventEdit.py:141 dialog.glade:409 dialog.glade:2215 msgid "Hebrew" msgstr "" -#: Date.py:267 dialog.glade:512 dialog.glade:1889 +#: Date.py:267 dialog.glade:409 dialog.glade:2215 msgid "French" msgstr "" -#: Date.py:348 Date.py:365 Date.py:526 +#: Date.py:348 Date.py:366 Date.py:527 Date.py:760 msgid "about" msgstr "" -#: Date.py:348 Date.py:555 +#: Date.py:348 Date.py:556 msgid "abt" msgstr "" @@ -191,15 +192,15 @@ msgstr "" msgid "est." msgstr "" -#: Date.py:350 Date.py:367 +#: Date.py:350 Date.py:368 msgid "circa" msgstr "" -#: Date.py:351 Date.py:368 +#: Date.py:351 Date.py:369 msgid "around" msgstr "" -#: Date.py:351 Date.py:369 Date.py:528 Date.py:557 +#: Date.py:351 Date.py:370 Date.py:529 Date.py:558 Date.py:762 msgid "before" msgstr "" @@ -215,7 +216,7 @@ msgstr "" msgid "aft." msgstr "" -#: Date.py:353 Date.py:370 Date.py:530 Date.py:559 +#: Date.py:353 Date.py:371 Date.py:531 Date.py:560 Date.py:764 msgid "after" msgstr "" @@ -223,38 +224,50 @@ msgstr "" msgid "aft" msgstr "" -#: Date.py:364 +#: Date.py:365 msgid "abt\\.?" msgstr "" -#: Date.py:366 +#: Date.py:367 msgid "est\\.?" msgstr "" -#: Date.py:371 +#: Date.py:372 msgid "aft\\.?" msgstr "" -#: Date.py:372 +#: Date.py:373 msgid "bef\\.?" msgstr "" -#: Date.py:585 Date.py:613 Date.py:640 Date.py:669 Date.py:708 +#: Date.py:586 Date.py:614 Date.py:641 Date.py:670 Date.py:709 msgid "ABOUT" msgstr "" -#: Date.py:587 Date.py:615 Date.py:642 Date.py:672 Date.py:710 +#: Date.py:588 Date.py:616 Date.py:643 Date.py:673 Date.py:711 msgid "BEFORE" msgstr "" -#: Date.py:589 Date.py:617 Date.py:644 Date.py:674 Date.py:712 +#: Date.py:590 Date.py:618 Date.py:645 Date.py:675 Date.py:713 msgid "AFTER" msgstr "" -#: DbPrompter.py:87 gramps_main.py:758 gramps_main.py:1271 gramps_main.py:1283 +#: DbPrompter.py:100 gramps_main.py:769 gramps_main.py:1141 +#: gramps_main.py:1153 msgid "No Comment Provided" msgstr "" +#: DisplayTrace.py:57 +msgid "" +"GRAMPS has encountered an internal error.\n" +"Please copy the message below and post a bug report at http://sourceforge.net/projects/gramps or send an email message to gramps-users@lists.sourceforge.net\n" +"\n" +msgstr "" + +#: DisplayTrace.py:67 +msgid "Internal Error - GRAMPS" +msgstr "" + #: EditPerson.glade:27 msgid "Edit Person - GRAMPS" msgstr "" @@ -271,22 +284,22 @@ msgstr "" msgid "Select information source" msgstr "" -#: EditPerson.glade:243 EditPerson.glade:539 EditPerson.glade:2156 -#: EditPerson.glade:2682 EditPerson.glade:3355 EditPerson.glade:3942 -#: EditPerson.glade:4694 EditPerson.glade:4966 EditPerson.glade:5238 -#: GenericFilter.py:237 GenericFilter.py:275 GenericFilter.py:364 -#: GenericFilter.py:396 dialog.glade:168 dialog.glade:1445 filters/After.py:57 -#: filters/Before.py:57 marriage.glade:349 marriage.glade:843 -#: marriage.glade:1764 revision.glade:351 srcsel.glade:507 +#: EditPerson.glade:243 EditPerson.glade:539 EditPerson.glade:2234 +#: EditPerson.glade:2838 EditPerson.glade:3589 EditPerson.glade:4254 +#: EditPerson.glade:5006 EditPerson.glade:5278 EditPerson.glade:5550 +#: GenericFilter.py:274 GenericFilter.py:312 GenericFilter.py:401 +#: GenericFilter.py:433 dialog.glade:180 dialog.glade:1886 filters/After.py:56 +#: filters/Before.py:56 marriage.glade:349 marriage.glade:921 +#: marriage.glade:1920 revision.glade:351 srcsel.glade:507 msgid "Date" msgstr "" -#: EditPerson.glade:269 EditPerson.glade:513 EditPerson.glade:2182 -#: EditPerson.glade:2695 EditPerson.glade:4746 EditPerson.glade:5018 -#: EditPerson.glade:5316 GenericFilter.py:237 GenericFilter.py:275 -#: GenericFilter.py:364 GenericFilter.py:396 ImageSelect.py:656 -#: dialog.glade:220 filters/EventPlace.py:72 marriage.glade:375 -#: marriage.glade:856 marriage.glade:1790 preferences.glade:2783 +#: EditPerson.glade:269 EditPerson.glade:513 EditPerson.glade:2260 +#: EditPerson.glade:2851 EditPerson.glade:5058 EditPerson.glade:5330 +#: EditPerson.glade:5628 GenericFilter.py:274 GenericFilter.py:312 +#: GenericFilter.py:401 GenericFilter.py:433 ImageSelect.py:659 +#: dialog.glade:232 filters/EventPlace.py:70 marriage.glade:375 +#: marriage.glade:934 marriage.glade:1946 preferences.glade:2783 msgid "Place" msgstr "" @@ -294,15 +307,16 @@ msgstr "" msgid "Invoke birth event editor" msgstr "" -#: EditPerson.glade:328 EditPerson.glade:574 EditPerson.glade:2067 -#: EditPerson.glade:2763 EditPerson.glade:3198 EditPerson.glade:4023 -#: EditPerson.glade:4625 imagesel.glade:1269 imagesel.glade:2270 -#: marriage.glade:922 marriage.glade:1333 rule.glade:441 rule.glade:838 -#: srcsel.glade:843 styles.glade:232 +#: EditPerson.glade:328 EditPerson.glade:574 EditPerson.glade:2145 +#: EditPerson.glade:2919 EditPerson.glade:3432 EditPerson.glade:4335 +#: EditPerson.glade:4937 dialog.glade:718 dialog.glade:1296 dialog.glade:2476 +#: dialog.glade:3484 imagesel.glade:1269 imagesel.glade:2270 +#: marriage.glade:1000 marriage.glade:1489 rule.glade:441 rule.glade:838 +#: srcsel.glade:957 styles.glade:232 msgid "Edit" msgstr "" -#: EditPerson.glade:407 plugins/EventCmp.py:288 plugins/FamilyGroup.py:156 +#: EditPerson.glade:407 plugins/EventCmp.py:286 plugins/FamilyGroup.py:154 msgid "Death" msgstr "" @@ -310,23 +324,23 @@ msgstr "" msgid "Invoke death event editor" msgstr "" -#: EditPerson.glade:653 gramps.glade:1103 gramps.glade:2535 gramps.glade:6915 -#: gramps.glade:7121 plugins/IndivComplete.py:382 plugins/IndivSummary.py:236 -#: plugins/WebPage.py:239 plugins/WebPage.py:241 +#: EditPerson.glade:653 gramps.glade:1104 gramps.glade:2536 gramps.glade:7228 +#: gramps.glade:7434 plugins/IndivComplete.py:382 plugins/IndivSummary.py:236 +#: plugins/WebPage.py:255 plugins/WebPage.py:257 msgid "Gender" msgstr "" -#: EditPerson.glade:681 const.py:110 gramps.glade:6808 gramps.glade:7194 +#: EditPerson.glade:681 const.py:111 gramps.glade:7121 gramps.glade:7507 msgid "male" msgstr "" -#: EditPerson.glade:696 const.py:111 gramps.glade:6828 gramps.glade:7209 +#: EditPerson.glade:696 const.py:112 gramps.glade:7141 gramps.glade:7522 msgid "female" msgstr "" -#: EditPerson.glade:711 EditPerson.py:426 const.py:112 gramps.glade:6848 -#: plugins/FamilyGroup.py:379 plugins/IndivComplete.py:260 -#: plugins/IndivSummary.py:161 plugins/WebPage.py:505 +#: EditPerson.glade:711 EditPerson.py:431 const.py:113 gramps.glade:7161 +#: plugins/FamilyGroup.py:377 plugins/IndivComplete.py:260 +#: plugins/IndivSummary.py:161 plugins/WebPage.py:521 msgid "unknown" msgstr "" @@ -334,20 +348,21 @@ msgstr "" msgid "Preferred Name" msgstr "" -#: EditPerson.glade:757 EditPerson.glade:1436 GenericFilter.py:474 -#: dialog.glade:2299 gramps.glade:6863 gramps.glade:7224 +#: EditPerson.glade:757 EditPerson.glade:1436 GenericFilter.py:511 +#: dialog.glade:2953 gramps.glade:7176 gramps.glade:7537 msgid "Given Name" msgstr "" -#: EditPerson.glade:783 EditPerson.glade:1462 GenericFilter.py:474 -#: dialog.glade:2466 +#: EditPerson.glade:783 EditPerson.glade:1462 GenericFilter.py:511 +#: dialog.glade:3005 msgid "Suffix" msgstr "" -#: EditPerson.glade:809 EditPerson.glade:1748 GenericFilter.py:474 -#: dialog.glade:2647 gramps.glade:2830 gramps.glade:4039 gramps.glade:4178 -#: gramps.glade:6070 imagesel.glade:235 imagesel.glade:792 imagesel.glade:1765 -#: imagesel.glade:2383 places.glade:168 srcsel.glade:208 srcsel.glade:791 +#: EditPerson.glade:809 EditPerson.glade:1618 GenericFilter.py:511 +#: dialog.glade:639 dialog.glade:1217 dialog.glade:2397 dialog.glade:3186 +#: dialog.glade:3405 gramps.glade:2831 gramps.glade:4040 gramps.glade:4179 +#: gramps.glade:6383 imagesel.glade:235 imagesel.glade:792 imagesel.glade:1765 +#: imagesel.glade:2383 places.glade:168 srcsel.glade:208 srcsel.glade:878 msgid "Title" msgstr "" @@ -355,9 +370,9 @@ msgstr "" msgid "Nick Name" msgstr "" -#: EditPerson.glade:861 EditPerson.glade:1410 GenericFilter.py:474 -#: dialog.glade:2325 filters/MatchSndEx.py:46 gramps.glade:6889 -#: gramps.glade:7095 +#: EditPerson.glade:861 EditPerson.glade:1410 GenericFilter.py:511 +#: dialog.glade:2979 filters/MatchSndEx.py:45 gramps.glade:7202 +#: gramps.glade:7408 msgid "Surname" msgstr "" @@ -365,7 +380,7 @@ msgstr "" msgid "Select source for this name information" msgstr "" -#: EditPerson.glade:1004 ImageSelect.py:650 Utils.py:194 Utils.py:196 +#: EditPerson.glade:1004 ImageSelect.py:652 Utils.py:194 Utils.py:196 #: places.glade:350 preferences.glade:2809 msgid "Source" msgstr "" @@ -374,15 +389,15 @@ msgstr "" msgid "Enter/modify notes regarding this name" msgstr "" -#: EditPerson.glade:1057 EditPerson.glade:4873 EditPerson.glade:5168 -#: EditPerson.glade:5466 Utils.py:189 dialog.glade:322 dialog.glade:853 -#: dialog.glade:1554 dialog.glade:2384 gramps.glade:6253 marriage.glade:1717 +#: EditPerson.glade:1057 EditPerson.glade:5185 EditPerson.glade:5480 +#: EditPerson.glade:5778 Utils.py:189 dialog.glade:775 dialog.glade:1353 +#: dialog.glade:2533 dialog.glade:3541 gramps.glade:6566 marriage.glade:1873 #: places.glade:1256 msgid "Note" msgstr "" -#: EditPerson.glade:1078 EditPerson.glade:1800 EditPerson.glade:1999 -#: dialog.glade:2583 gramps.glade:3961 gramps.glade:4290 imagesel.glade:2357 +#: EditPerson.glade:1078 EditPerson.glade:1644 EditPerson.glade:2077 +#: dialog.glade:3122 gramps.glade:3962 gramps.glade:4291 imagesel.glade:2357 msgid "Type" msgstr "" @@ -398,7 +413,8 @@ msgstr "" msgid "GRAMPS ID" msgstr "" -#: EditPerson.glade:1359 GrampsCfg.py:95 GrampsCfg.py:101 gramps.glade:6223 +#: EditPerson.glade:1359 GrampsCfg.py:95 GrampsCfg.py:101 dialog.glade:495 +#: dialog.glade:1073 dialog.glade:2253 dialog.glade:3261 gramps.glade:6536 #: imagesel.glade:1882 places.glade:649 plugins/verify.glade:165 msgid "General" msgstr "" @@ -407,311 +423,322 @@ msgstr "" msgid "No Alternate Names" msgstr "" -#: EditPerson.glade:1566 EditPerson.glade:2012 EditPerson.glade:2312 -#: EditPerson.glade:2708 EditPerson.glade:2905 EditPerson.glade:3143 -#: EditPerson.glade:3511 EditPerson.glade:3968 gramps.glade:2643 -#: gramps.glade:3805 gramps.glade:4384 imagesel.glade:985 imagesel.glade:1215 -#: imagesel.glade:1985 imagesel.glade:2216 marriage.glade:505 -#: marriage.glade:869 marriage.glade:1051 marriage.glade:1279 -msgid "Details" +#: EditPerson.glade:1696 EditPerson.glade:2468 EditPerson.glade:3087 +#: EditPerson.glade:4005 marriage.glade:427 marriage.glade:1103 +msgid "Primary Source" msgstr "" -#: EditPerson.glade:1986 config.glade:130 gramps.glade:965 gramps.glade:2421 -#: gramps.glade:4701 gramps.glade:5001 gramps.glade:5160 gramps.glade:5526 +#: EditPerson.glade:1852 EditPerson.glade:2624 EditPerson.glade:3139 +#: EditPerson.glade:4083 marriage.glade:765 marriage.glade:1233 +#: srcsel.glade:585 +msgid "Confidence" +msgstr "" + +#: EditPerson.glade:2064 config.glade:130 gramps.glade:966 gramps.glade:2422 +#: gramps.glade:4719 gramps.glade:5132 gramps.glade:5391 gramps.glade:5839 #: mergedata.glade:544 mergedata.glade:1699 plugins/IndivComplete.py:371 -#: plugins/IndivSummary.py:222 plugins/WebPage.py:237 +#: plugins/IndivSummary.py:222 plugins/WebPage.py:245 #: plugins/relcalc.glade:157 plugins/soundex.glade:143 preferences.glade:1763 #: rule.glade:140 rule.glade:772 msgid "Name" msgstr "" -#: EditPerson.glade:2041 +#: EditPerson.glade:2090 EditPerson.glade:2864 EditPerson.glade:3377 +#: EditPerson.glade:4280 gramps.glade:2644 gramps.glade:3806 gramps.glade:4385 +#: imagesel.glade:985 imagesel.glade:1215 imagesel.glade:1985 +#: imagesel.glade:2216 marriage.glade:947 marriage.glade:1435 +msgid "Details" +msgstr "" + +#: EditPerson.glade:2119 msgid "Create an alternate name for this person" msgstr "" -#: EditPerson.glade:2050 EditPerson.glade:2746 EditPerson.glade:3181 -#: EditPerson.glade:4006 EditPerson.glade:4608 gramps.glade:1729 -#: imagesel.glade:1253 imagesel.glade:2254 marriage.glade:906 -#: marriage.glade:1317 places.glade:1186 places.glade:1691 rule.glade:426 -#: rule.glade:822 srcsel.glade:828 styles.glade:217 +#: EditPerson.glade:2128 EditPerson.glade:2902 EditPerson.glade:3415 +#: EditPerson.glade:4318 EditPerson.glade:4920 dialog.glade:703 +#: dialog.glade:1281 dialog.glade:2461 dialog.glade:3469 gramps.glade:1730 +#: imagesel.glade:1253 imagesel.glade:2254 marriage.glade:984 +#: marriage.glade:1473 places.glade:1186 places.glade:1691 rule.glade:426 +#: rule.glade:822 srcsel.glade:942 styles.glade:217 msgid "Add" msgstr "" -#: EditPerson.glade:2058 +#: EditPerson.glade:2136 msgid "Modify the selected name" msgstr "" -#: EditPerson.glade:2075 +#: EditPerson.glade:2153 msgid "Delete selected name" msgstr "" -#: EditPerson.glade:2094 +#: EditPerson.glade:2172 msgid "Names" msgstr "" -#: EditPerson.glade:2135 marriage.glade:328 +#: EditPerson.glade:2213 marriage.glade:328 msgid "No Events" msgstr "" -#: EditPerson.glade:2208 EditPerson.glade:2669 EditPerson.glade:4261 -#: EditPerson.glade:4570 GenericFilter.py:237 GenericFilter.py:275 -#: GenericFilter.py:364 GenericFilter.py:396 const.py:320 dialog.glade:194 -#: dialog.glade:2057 gramps.glade:6426 marriage.glade:401 places.glade:1422 +#: EditPerson.glade:2286 EditPerson.glade:2825 EditPerson.glade:4573 +#: EditPerson.glade:4882 GenericFilter.py:274 GenericFilter.py:312 +#: GenericFilter.py:401 GenericFilter.py:433 const.py:321 dialog.glade:206 +#: dialog.glade:2700 gramps.glade:6739 marriage.glade:401 places.glade:1422 #: places.glade:1654 plugins/pafexport.glade:241 msgid "Description" msgstr "" -#: EditPerson.glade:2468 dialog.glade:404 marriage.glade:661 +#: EditPerson.glade:2390 dialog.glade:301 marriage.glade:583 msgid "Cause" msgstr "" -#: EditPerson.glade:2656 filters/EventType.py:42 marriage.glade:830 +#: EditPerson.glade:2812 filters/EventType.py:42 marriage.glade:908 msgid "Event" msgstr "" -#: EditPerson.glade:2737 +#: EditPerson.glade:2893 msgid "Create a new event from the above data" msgstr "" -#: EditPerson.glade:2754 +#: EditPerson.glade:2910 msgid "Update the selected event with the above data" msgstr "" -#: EditPerson.glade:2771 +#: EditPerson.glade:2927 msgid "Delete the selected event" msgstr "" -#: EditPerson.glade:2791 marriage.glade:948 +#: EditPerson.glade:2947 marriage.glade:1026 msgid "Events" msgstr "" -#: EditPerson.glade:2832 imagesel.glade:912 imagesel.glade:1912 -#: marriage.glade:978 +#: EditPerson.glade:2988 imagesel.glade:912 imagesel.glade:1912 +#: marriage.glade:1056 msgid "No Attributes" msgstr "" -#: EditPerson.glade:2853 EditPerson.glade:3130 GenericFilter.py:428 -#: GenericFilter.py:449 dialog.glade:727 imagesel.glade:933 +#: EditPerson.glade:3009 EditPerson.glade:3364 GenericFilter.py:465 +#: GenericFilter.py:486 dialog.glade:955 imagesel.glade:933 #: imagesel.glade:1202 imagesel.glade:1933 imagesel.glade:2203 -#: marriage.glade:999 marriage.glade:1266 +#: marriage.glade:1077 marriage.glade:1422 msgid "Value" msgstr "" -#: EditPerson.glade:3117 dialog.glade:701 imagesel.glade:1189 -#: imagesel.glade:2190 marriage.glade:1253 +#: EditPerson.glade:3351 dialog.glade:929 imagesel.glade:1189 +#: imagesel.glade:2190 marriage.glade:1409 msgid "Attribute" msgstr "" -#: EditPerson.glade:3172 +#: EditPerson.glade:3406 msgid "Create a new attribute from the above data" msgstr "" -#: EditPerson.glade:3189 +#: EditPerson.glade:3423 msgid "Update the selected attribute with the above data" msgstr "" -#: EditPerson.glade:3206 imagesel.glade:1276 imagesel.glade:2277 -#: marriage.glade:1340 +#: EditPerson.glade:3440 imagesel.glade:1276 imagesel.glade:2277 +#: marriage.glade:1496 msgid "Delete the selected attribute" msgstr "" -#: EditPerson.glade:3226 imagesel.glade:1295 imagesel.glade:2296 -#: marriage.glade:1359 +#: EditPerson.glade:3460 imagesel.glade:1295 imagesel.glade:2296 +#: marriage.glade:1515 msgid "Attributes" msgstr "" -#: EditPerson.glade:3256 +#: EditPerson.glade:3490 msgid "No Addresses" msgstr "" -#: EditPerson.glade:3277 config.glade:234 dialog.glade:1116 dialog.glade:1712 -#: gramps.glade:3476 places.glade:272 places.glade:793 places.glade:1149 +#: EditPerson.glade:3511 config.glade:234 dialog.glade:1546 dialog.glade:2038 +#: gramps.glade:3477 places.glade:272 places.glade:793 places.glade:1149 #: preferences.glade:1867 msgid "Country" msgstr "" -#: EditPerson.glade:3303 dialog.glade:1636 +#: EditPerson.glade:3537 dialog.glade:1962 msgid "City/County" msgstr "" -#: EditPerson.glade:3329 config.glade:156 dialog.glade:1471 +#: EditPerson.glade:3563 config.glade:156 dialog.glade:1912 #: preferences.glade:1789 msgid "Address" msgstr "" -#: EditPerson.glade:3381 config.glade:208 dialog.glade:1686 +#: EditPerson.glade:3615 config.glade:208 dialog.glade:2012 #: preferences.glade:1841 msgid "State/Province" msgstr "" -#: EditPerson.glade:3407 config.glade:286 dialog.glade:1738 +#: EditPerson.glade:3641 config.glade:286 dialog.glade:2064 #: preferences.glade:1893 msgid "ZIP/Postal Code" msgstr "" -#: EditPerson.glade:3955 +#: EditPerson.glade:4267 msgid "Location" msgstr "" -#: EditPerson.glade:3997 +#: EditPerson.glade:4309 msgid "Create a new address from the above data" msgstr "" -#: EditPerson.glade:4014 +#: EditPerson.glade:4326 msgid "Update the selected address with the above data" msgstr "" -#: EditPerson.glade:4031 +#: EditPerson.glade:4343 msgid "Delete the selected address" msgstr "" -#: EditPerson.glade:4051 +#: EditPerson.glade:4363 msgid "Addresses" msgstr "" -#: EditPerson.glade:4071 +#: EditPerson.glade:4383 msgid "Enter miscellaneous relevant data and documentation" msgstr "" -#: EditPerson.glade:4082 imagesel.glade:882 imagesel.glade:2326 -#: marriage.glade:1390 plugins/IndivComplete.py:150 plugins/WebPage.py:421 +#: EditPerson.glade:4394 imagesel.glade:882 imagesel.glade:2326 +#: marriage.glade:1546 plugins/IndivComplete.py:150 plugins/WebPage.py:437 msgid "Notes" msgstr "" -#: EditPerson.glade:4159 gramps.glade:6329 marriage.glade:1468 +#: EditPerson.glade:4471 gramps.glade:6642 marriage.glade:1624 msgid "Place new media object in this gallery" msgstr "" -#: EditPerson.glade:4168 gramps.glade:4433 gramps.glade:6338 -#: marriage.glade:1477 places.glade:1340 +#: EditPerson.glade:4480 gramps.glade:4434 gramps.glade:6651 +#: marriage.glade:1633 places.glade:1340 msgid "Add Media Object" msgstr "" -#: EditPerson.glade:4175 gramps.glade:6345 marriage.glade:1484 +#: EditPerson.glade:4487 gramps.glade:6658 marriage.glade:1640 msgid "Remove selected object from this gallery only" msgstr "" -#: EditPerson.glade:4184 gramps.glade:4462 gramps.glade:6354 -#: marriage.glade:1493 places.glade:1355 +#: EditPerson.glade:4496 gramps.glade:4463 gramps.glade:6667 +#: marriage.glade:1649 places.glade:1355 msgid "Delete Media Object" msgstr "" -#: EditPerson.glade:4191 gramps.glade:6361 marriage.glade:1500 +#: EditPerson.glade:4503 gramps.glade:6674 marriage.glade:1656 msgid "Modify selected object" msgstr "" -#: EditPerson.glade:4200 gramps.glade:6370 marriage.glade:1509 +#: EditPerson.glade:4512 gramps.glade:6683 marriage.glade:1665 #: places.glade:1370 msgid "Edit Properties" msgstr "" -#: EditPerson.glade:4210 gramps.glade:6382 marriage.glade:1519 -#: places.glade:1382 plugins/WebPage.py:308 +#: EditPerson.glade:4522 gramps.glade:6695 marriage.glade:1675 +#: places.glade:1382 plugins/WebPage.py:324 msgid "Gallery" msgstr "" -#: EditPerson.glade:4240 places.glade:1401 +#: EditPerson.glade:4552 places.glade:1401 msgid "Internet Addresses" msgstr "" -#: EditPerson.glade:4287 EditPerson.glade:4557 dialog.glade:2031 +#: EditPerson.glade:4599 EditPerson.glade:4869 dialog.glade:2674 #: places.glade:1448 places.glade:1641 msgid "Web Address" msgstr "" -#: EditPerson.glade:4376 +#: EditPerson.glade:4688 msgid "Go to this web page" msgstr "" -#: EditPerson.glade:4384 places.glade:1544 +#: EditPerson.glade:4696 places.glade:1544 msgid "Go" msgstr "" -#: EditPerson.glade:4599 +#: EditPerson.glade:4911 msgid "Add an internet reference about this person" msgstr "" -#: EditPerson.glade:4616 +#: EditPerson.glade:4928 msgid "Modify selected reference" msgstr "" -#: EditPerson.glade:4633 +#: EditPerson.glade:4945 msgid "Delete selected reference" msgstr "" -#: EditPerson.glade:4652 places.glade:1731 +#: EditPerson.glade:4964 places.glade:1731 msgid "Internet" msgstr "" -#: EditPerson.glade:4672 +#: EditPerson.glade:4984 msgid "LDS Baptism" msgstr "" -#: EditPerson.glade:4720 EditPerson.glade:4992 EditPerson.glade:5264 -#: marriage.glade:1738 +#: EditPerson.glade:5032 EditPerson.glade:5304 EditPerson.glade:5576 +#: marriage.glade:1894 msgid "Temple" msgstr "" -#: EditPerson.glade:4845 EditPerson.glade:5140 EditPerson.glade:5438 -#: gramps.glade:655 gramps.glade:3070 marriage.glade:1690 -#: plugins/IndivComplete.py:300 plugins/WebPage.py:170 +#: EditPerson.glade:5157 EditPerson.glade:5452 EditPerson.glade:5750 +#: dialog.glade:743 dialog.glade:1321 dialog.glade:2501 dialog.glade:3509 +#: gramps.glade:655 gramps.glade:3071 marriage.glade:1846 +#: plugins/IndivComplete.py:300 plugins/WebPage.py:178 #: plugins/gedcomexport.glade:437 plugins/pkgexport.glade:266 msgid "Sources" msgstr "" -#: EditPerson.glade:4944 +#: EditPerson.glade:5256 msgid "Endowment" msgstr "" -#: EditPerson.glade:5216 +#: EditPerson.glade:5528 msgid "Sealed to Parents" msgstr "" -#: EditPerson.glade:5290 gramps.glade:1769 +#: EditPerson.glade:5602 gramps.glade:1770 msgid "Parents" msgstr "" -#: EditPerson.glade:5539 marriage.glade:1820 +#: EditPerson.glade:5851 marriage.glade:1976 msgid "LDS" msgstr "" -#: EditPerson.py:401 GrampsCfg.py:61 const.py:125 gramps.glade:5081 -#: gramps.glade:5240 gramps.glade:5656 gramps.glade:5721 gramps.glade:6698 -#: gramps.glade:6745 +#: EditPerson.py:406 GrampsCfg.py:61 const.py:126 gramps.glade:5294 +#: gramps.glade:5553 gramps.glade:5969 gramps.glade:6034 gramps.glade:7011 +#: gramps.glade:7058 msgid "None" msgstr "" -#: EditPerson.py:418 EditSource.py:138 +#: EditPerson.py:423 EditSource.py:140 msgid "%(father)s and %(mother)s" msgstr "" -#: EditPerson.py:739 EditPerson.py:741 EditPerson.py:751 EditPerson.py:753 -#: Marriage.py:351 Marriage.py:354 gramps_main.py:411 gramps_main.py:415 -#: gramps_main.py:1223 +#: EditPerson.py:742 EditPerson.py:744 EditPerson.py:754 EditPerson.py:756 +#: Marriage.py:355 Marriage.py:358 gramps_main.py:402 gramps_main.py:406 +#: gramps_main.py:1094 msgid "Abandon Changes" msgstr "" -#: EditPerson.py:740 EditPerson.py:752 +#: EditPerson.py:743 EditPerson.py:755 msgid "Are you sure you want to abandon your changes?" msgstr "" -#: EditPerson.py:743 EditPerson.py:755 Marriage.py:355 +#: EditPerson.py:746 EditPerson.py:758 Marriage.py:359 msgid "Continue Editing" msgstr "" -#: EditPerson.py:1063 +#: EditPerson.py:1090 msgid "Make the selected name the preferred name" msgstr "" -#: EditPerson.py:1124 Marriage.py:374 +#: EditPerson.py:1151 Marriage.py:378 msgid "GRAMPS ID value was not changed." msgstr "" -#: EditPerson.py:1125 +#: EditPerson.py:1152 msgid "%(grampsid)s is already used by %(person)s" msgstr "" -#: EditPerson.py:1229 +#: EditPerson.py:1255 msgid "" "Changing the gender caused problems with marriage information.\n" "Please check the person's marriages." @@ -721,53 +748,53 @@ msgstr "" msgid "Internet Address Editor for %s" msgstr "" -#: EditPlace.py:269 EditPlace.py:293 dialog.glade:1990 +#: EditPlace.py:269 EditPlace.py:293 dialog.glade:2633 msgid "Internet Address Editor" msgstr "" -#: EditPlace.py:340 gramps.glade:608 plugins/gedcomexport.glade:489 +#: EditPlace.py:341 gramps.glade:608 plugins/gedcomexport.glade:489 #: plugins/pkgexport.glade:318 msgid "People" msgstr "" -#: EditPlace.py:342 EditPlace.py:351 +#: EditPlace.py:343 EditPlace.py:352 msgid "" "%s [%s]: event %s\n" msgstr "" -#: EditPlace.py:349 plugins/gedcomexport.glade:463 plugins/pkgexport.glade:292 +#: EditPlace.py:350 plugins/gedcomexport.glade:463 plugins/pkgexport.glade:292 msgid "Families" msgstr "" -#: EditSource.py:157 +#: EditSource.py:159 msgid "Individual Events" msgstr "" -#: EditSource.py:161 +#: EditSource.py:163 msgid "Individual Attributes" msgstr "" -#: EditSource.py:165 +#: EditSource.py:167 msgid "Individual Names" msgstr "" -#: EditSource.py:168 +#: EditSource.py:170 msgid "Family Events" msgstr "" -#: EditSource.py:172 +#: EditSource.py:174 msgid "Family Attributes" msgstr "" -#: EditSource.py:176 GrampsCfg.py:97 plugins/Summary.py:104 +#: EditSource.py:178 GrampsCfg.py:97 plugins/Summary.py:118 msgid "Media Objects" msgstr "" -#: EditSource.py:179 gramps.glade:672 gramps.glade:3657 +#: EditSource.py:181 gramps.glade:672 gramps.glade:3658 msgid "Places" msgstr "" -#: EventEdit.py:137 dialog.glade:512 dialog.glade:1889 +#: EventEdit.py:141 dialog.glade:409 dialog.glade:2215 msgid "Gregorian" msgstr "" @@ -787,136 +814,138 @@ msgstr "" msgid "Failed to load the module: %s" msgstr "" -#: Find.py:131 +#: Find.py:156 msgid "Find Person" msgstr "" -#: Find.py:179 +#: Find.py:181 msgid "Find Place" msgstr "" -#: Find.py:224 +#: Find.py:204 msgid "Find Source" msgstr "" -#: Find.py:269 +#: Find.py:227 msgid "Find Media Object" msgstr "" -#: GenericFilter.py:135 GenericFilter.py:168 GenericFilter.py:194 -#: gramps.glade:1033 gramps.glade:2478 gramps.glade:2886 gramps.glade:3191 -#: gramps.glade:3987 gramps.glade:4234 gramps.glade:5552 imagesel.glade:613 -#: imagesel.glade:1507 imagesel.glade:2370 mergedata.glade:1013 -#: mergedata.glade:1725 plugins/relcalc.glade:170 srcsel.glade:778 +#: GenericFilter.py:135 GenericFilter.py:168 GenericFilter.py:195 +#: GenericFilter.py:231 dialog.glade:569 dialog.glade:1147 dialog.glade:2327 +#: dialog.glade:3335 gramps.glade:1034 gramps.glade:2479 gramps.glade:2887 +#: gramps.glade:3192 gramps.glade:3988 gramps.glade:4235 gramps.glade:5865 +#: imagesel.glade:613 imagesel.glade:1507 imagesel.glade:2370 +#: mergedata.glade:1013 mergedata.glade:1725 plugins/relcalc.glade:170 +#: srcsel.glade:808 msgid "ID" msgstr "" -#: GenericFilter.py:237 plugins/FilterEditor.py:40 +#: GenericFilter.py:274 plugins/FilterEditor.py:40 msgid "Personal Event" msgstr "" -#: GenericFilter.py:275 plugins/FilterEditor.py:41 +#: GenericFilter.py:312 plugins/FilterEditor.py:41 msgid "Family Event" msgstr "" -#: GenericFilter.py:314 +#: GenericFilter.py:351 msgid "Number of Relationships" msgstr "" -#: GenericFilter.py:315 gramps.glade:4762 marriage.glade:161 +#: GenericFilter.py:352 gramps.glade:4875 marriage.glade:161 #: plugins/FilterEditor.py:44 msgid "Relationship Type" msgstr "" -#: GenericFilter.py:316 const.py:362 +#: GenericFilter.py:353 const.py:363 msgid "Number of Children" msgstr "" -#: GenericFilter.py:428 plugins/FilterEditor.py:42 +#: GenericFilter.py:465 plugins/FilterEditor.py:42 msgid "Personal Attribute" msgstr "" -#: GenericFilter.py:449 plugins/FilterEditor.py:43 +#: GenericFilter.py:486 plugins/FilterEditor.py:43 msgid "Family Attribute" msgstr "" -#: GenericFilter.py:502 +#: GenericFilter.py:539 msgid "Filter Name" msgstr "" -#: GenericFilter.py:640 +#: GenericFilter.py:677 msgid "Everyone" msgstr "" -#: GenericFilter.py:641 +#: GenericFilter.py:678 msgid "Has the Id" msgstr "" -#: GenericFilter.py:642 +#: GenericFilter.py:679 msgid "Has a name" msgstr "" -#: GenericFilter.py:643 +#: GenericFilter.py:680 msgid "Has the relationships" msgstr "" -#: GenericFilter.py:644 +#: GenericFilter.py:681 msgid "Has the death" msgstr "" -#: GenericFilter.py:645 +#: GenericFilter.py:682 msgid "Has the birth" msgstr "" -#: GenericFilter.py:646 -msgid "Is the descendant of" +#: GenericFilter.py:683 +msgid "Is a descendant of" msgstr "" -#: GenericFilter.py:647 +#: GenericFilter.py:684 +msgid "Is a descendant family member of" +msgstr "" + +#: GenericFilter.py:685 msgid "Is an ancestor of" msgstr "" -#: GenericFilter.py:648 +#: GenericFilter.py:686 msgid "Is a female" msgstr "" -#: GenericFilter.py:649 +#: GenericFilter.py:687 msgid "Is a male" msgstr "" -#: GenericFilter.py:650 +#: GenericFilter.py:688 msgid "Has the personal event" msgstr "" -#: GenericFilter.py:651 +#: GenericFilter.py:689 msgid "Has the family event" msgstr "" -#: GenericFilter.py:652 +#: GenericFilter.py:690 msgid "Has the personal attribute" msgstr "" -#: GenericFilter.py:653 +#: GenericFilter.py:691 msgid "Has the family attribute" msgstr "" -#: GenericFilter.py:654 +#: GenericFilter.py:692 msgid "Matches the filter named" msgstr "" -#: GenericFilter.py:758 -msgid "class" -msgstr "" - -#: GenericFilter.py:800 +#: GenericFilter.py:840 msgid "Local Filters" msgstr "" -#: GenericFilter.py:815 +#: GenericFilter.py:855 msgid "System Filters" msgstr "" -#: GenericFilter.py:830 +#: GenericFilter.py:870 msgid "Custom Filters" msgstr "" @@ -1064,33 +1093,33 @@ msgstr "" msgid "Could not import %s - %s" msgstr "" -#: ImageSelect.py:282 MediaView.py:341 plugins/ReadGedcom.py:859 -#: plugins/ReadGedcom.py:894 plugins/ReadGedcom.py:929 +#: ImageSelect.py:282 MediaView.py:293 plugins/ReadGedcom.py:831 +#: plugins/ReadGedcom.py:866 plugins/ReadGedcom.py:901 msgid "Could not import %s" msgstr "" -#: ImageSelect.py:382 MediaView.py:173 +#: ImageSelect.py:382 MediaView.py:122 msgid "View in the default viewer" msgstr "" -#: ImageSelect.py:386 MediaView.py:175 +#: ImageSelect.py:386 MediaView.py:124 msgid "Edit with the GIMP" msgstr "" -#: ImageSelect.py:388 MediaView.py:177 +#: ImageSelect.py:388 MediaView.py:126 msgid "Edit Object Properties" msgstr "" -#: ImageSelect.py:391 MediaView.py:180 +#: ImageSelect.py:391 MediaView.py:129 msgid "Convert to local copy" msgstr "" -#: ImageSelect.py:638 gramps.glade:1357 gramps.glade:1423 -#: plugins/EventCmp.py:288 preferences.glade:2731 +#: ImageSelect.py:639 gramps.glade:1358 gramps.glade:1424 +#: plugins/EventCmp.py:286 preferences.glade:2731 msgid "Person" msgstr "" -#: ImageSelect.py:644 gramps.glade:626 gramps.glade:2721 +#: ImageSelect.py:645 gramps.glade:626 gramps.glade:2722 #: preferences.glade:2757 msgid "Family" msgstr "" @@ -1099,36 +1128,36 @@ msgstr "" msgid "Location Editor for %s" msgstr "" -#: LocEdit.py:68 dialog.glade:1023 +#: LocEdit.py:68 dialog.glade:1453 msgid "Location Editor" msgstr "" -#: Marriage.py:103 Marriage.py:486 Marriage.py:504 Utils.py:135 -#: plugins/Check.py:175 +#: Marriage.py:105 Marriage.py:502 Marriage.py:520 Utils.py:135 +#: plugins/Check.py:159 plugins/Check.py:178 msgid "%s and %s" msgstr "" -#: Marriage.py:352 +#: Marriage.py:356 msgid "Data was modified. Are you sure you want to abandon your changes?" msgstr "" -#: MediaView.py:154 +#: MediaView.py:103 msgid "The file no longer exists" msgstr "" -#: MediaView.py:271 MediaView.py:274 +#: MediaView.py:220 MediaView.py:223 msgid "Delete Object" msgstr "" -#: MediaView.py:272 +#: MediaView.py:221 msgid "This media object is currently being used. Delete anyway?" msgstr "" -#: MediaView.py:275 +#: MediaView.py:224 msgid "Keep Object" msgstr "" -#: NameEdit.py:76 +#: NameEdit.py:78 msgid "Alternate Name Editor for %s" msgstr "" @@ -1144,35 +1173,35 @@ msgstr "" msgid "Landscape" msgstr "" -#: PedView.py:346 +#: PedView.py:348 msgid "Doubleclick to edit, Shift-Doubleclick to make the active person" msgstr "" -#: PedView.py:362 +#: PedView.py:364 msgid "Double clicking will make %s the active person" msgstr "" -#: PlaceView.py:144 +#: PlaceView.py:122 msgid "Exactly two places must be selected to perform a merge" msgstr "" -#: PlaceView.py:238 +#: PlaceView.py:175 msgid "Currently, you can only delete one place at a time" msgstr "" -#: PlaceView.py:257 PlaceView.py:259 gramps.glade:3647 +#: PlaceView.py:195 PlaceView.py:197 gramps.glade:3648 msgid "Delete Place" msgstr "" -#: PlaceView.py:258 +#: PlaceView.py:196 msgid "This place is currently being used. Delete anyway?" msgstr "" -#: PlaceView.py:260 +#: PlaceView.py:198 msgid "Keep Place" msgstr "" -#: PlaceView.py:270 +#: PlaceView.py:207 msgid "You requested too many places to edit at the same time" msgstr "" @@ -1180,15 +1209,15 @@ msgstr "" msgid "No description was provided" msgstr "" -#: Plugins.py:206 plugins.glade:193 +#: Plugins.py:208 plugins.glade:193 msgid "Report Selection" msgstr "" -#: Plugins.py:222 +#: Plugins.py:224 msgid "Tool Selection" msgstr "" -#: Plugins.py:241 +#: Plugins.py:243 msgid "The following modules could not be loaded:" msgstr "" @@ -1196,14 +1225,14 @@ msgstr "" msgid "Uncategorized" msgstr "" -#: Plugins.py:365 Plugins.py:376 const.py:126 const.py:401 const.py:409 -#: gramps.glade:5081 gramps.glade:5240 gramps.glade:5656 gramps.glade:5721 -#: gramps.glade:6698 gramps.glade:6745 gramps_main.py:1478 gramps_main.py:1684 +#: Plugins.py:365 Plugins.py:376 const.py:127 const.py:402 const.py:410 +#: gramps.glade:5294 gramps.glade:5553 gramps.glade:5969 gramps.glade:6034 +#: gramps.glade:7011 gramps.glade:7058 gramps_main.py:1325 gramps_main.py:1528 msgid "Unknown" msgstr "" #: ReadXML.py:89 ReadXML.py:92 ReadXML.py:145 ReadXML.py:149 -#: plugins/ReadGedcom.py:125 plugins/ReadGedcom.py:129 +#: plugins/ReadGedcom.py:127 plugins/ReadGedcom.py:131 msgid "" "%s could not be opened\n" msgstr "" @@ -1224,9 +1253,8 @@ msgid "" msgstr "" #: RelImage.py:74 RelImage.py:77 RelImage.py:142 RelImage.py:145 -#: gramps_main.py:779 gramps_main.py:783 gramps_main.py:791 -#: plugins/WriteGedcom.py:408 plugins/WriteGedcom.py:413 -#: plugins/WriteGedcomXML.py:514 plugins/WriteGedcomXML.py:519 +#: gramps_main.py:790 gramps_main.py:794 gramps_main.py:802 +#: plugins/WriteGedcom.py:422 plugins/WriteGedcom.py:427 msgid "Could not create %s" msgstr "" @@ -1256,241 +1284,247 @@ msgstr "" msgid "Could not create a thumbnail for %s" msgstr "" -#: Report.py:55 +#: Report.py:76 msgid "Default Template" msgstr "" -#: Report.py:56 +#: Report.py:77 msgid "User Defined Template" msgstr "" -#: Report.py:73 +#: Report.py:92 msgid "First" msgstr "" -#: Report.py:74 +#: Report.py:93 msgid "Second" msgstr "" -#: Report.py:75 +#: Report.py:94 msgid "Third" msgstr "" -#: Report.py:76 +#: Report.py:95 msgid "Fourth" msgstr "" -#: Report.py:77 +#: Report.py:96 msgid "Fifth" msgstr "" -#: Report.py:78 +#: Report.py:97 msgid "Sixth" msgstr "" -#: Report.py:79 +#: Report.py:98 msgid "Seventh" msgstr "" -#: Report.py:80 +#: Report.py:99 msgid "Eighth" msgstr "" -#: Report.py:81 +#: Report.py:100 msgid "Ninth" msgstr "" -#: Report.py:82 +#: Report.py:101 msgid "Tenth" msgstr "" -#: Report.py:83 +#: Report.py:102 msgid "Eleventh" msgstr "" -#: Report.py:84 +#: Report.py:103 msgid "Twelfth" msgstr "" -#: Report.py:85 +#: Report.py:104 msgid "Thirteenth" msgstr "" -#: Report.py:86 +#: Report.py:105 msgid "Fourteenth" msgstr "" -#: Report.py:87 +#: Report.py:106 msgid "Fifteenth" msgstr "" -#: Report.py:88 +#: Report.py:107 msgid "Sixteenth" msgstr "" -#: Report.py:89 +#: Report.py:108 msgid "Seventeenth" msgstr "" -#: Report.py:90 +#: Report.py:109 msgid "Eighteenth" msgstr "" -#: Report.py:91 +#: Report.py:110 msgid "Nineteenth" msgstr "" -#: Report.py:92 +#: Report.py:111 msgid "Twentieth" msgstr "" -#: Report.py:93 +#: Report.py:112 msgid "Twenty-first" msgstr "" -#: Report.py:94 +#: Report.py:113 msgid "Twenty-second" msgstr "" -#: Report.py:95 +#: Report.py:114 msgid "Twenty-third" msgstr "" -#: Report.py:96 +#: Report.py:115 msgid "Twenty-fourth" msgstr "" -#: Report.py:97 +#: Report.py:116 msgid "Twenty-fifth" msgstr "" -#: Report.py:98 +#: Report.py:117 msgid "Twenty-sixth" msgstr "" -#: Report.py:99 +#: Report.py:118 msgid "Twenty-seventh" msgstr "" -#: Report.py:100 +#: Report.py:119 msgid "Twenty-eighth" msgstr "" -#: Report.py:101 +#: Report.py:120 msgid "Twenty-ninth" msgstr "" -#: Report.py:107 +#: Report.py:126 msgid "Progress Report - GRAMPS" msgstr "" -#: Report.py:107 +#: Report.py:126 msgid "Working" msgstr "" -#: Report.py:125 +#: Report.py:144 msgid "%v of %u (%P%%)" msgstr "" -#: Report.py:222 +#: Report.py:238 msgid "Base Report - GRAMPS" msgstr "" -#: Report.py:236 +#: Report.py:252 msgid "Save Report As - GRAMPS" msgstr "" -#: Report.py:460 Report.py:465 +#: Report.py:476 Report.py:481 msgid "Save As" msgstr "" -#: Report.py:472 +#: Report.py:488 msgid "Directory" msgstr "" -#: Report.py:474 +#: Report.py:490 msgid "Filename" msgstr "" -#: Report.py:507 +#: Report.py:523 msgid "Output Format" msgstr "" -#: Report.py:520 +#: Report.py:536 msgid "Styles" msgstr "" -#: Report.py:525 styles.glade:343 +#: Report.py:541 styles.glade:343 msgid "Style Editor" msgstr "" -#: Report.py:551 Report.py:553 +#: Report.py:567 Report.py:569 msgid "Paper Options" msgstr "" -#: Report.py:554 Report.py:556 +#: Report.py:570 Report.py:572 msgid "HTML Options" msgstr "" -#: Report.py:573 styles.glade:537 +#: Report.py:589 styles.glade:537 msgid "Size" msgstr "" -#: Report.py:578 +#: Report.py:594 msgid "Orientation" msgstr "" -#: Report.py:590 +#: Report.py:606 msgid "Page Count" msgstr "" -#: Report.py:610 plugins/eventcmp.glade:225 +#: Report.py:626 plugins/eventcmp.glade:225 msgid "Template" msgstr "" -#: Report.py:631 +#: Report.py:647 msgid "User Template" msgstr "" -#: Report.py:633 +#: Report.py:649 msgid "HTML Template" msgstr "" -#: Report.py:634 +#: Report.py:650 msgid "Choose File" msgstr "" -#: Report.py:670 +#: Report.py:689 Report.py:696 msgid "Report Options" msgstr "" -#: Report.py:679 gramps.glade:772 plugins/eventcmp.glade:542 +#: Report.py:702 gramps.glade:772 plugins/eventcmp.glade:542 #: plugins/gedcomexport.glade:155 plugins/pafexport.glade:155 msgid "Filter" msgstr "" -#: Report.py:698 +#: Report.py:722 msgid "Generations" msgstr "" -#: Report.py:706 +#: Report.py:731 msgid "Page break between generations" msgstr "" -#: SelectChild.py:81 SelectChild.py:86 SelectChild.py:90 SelectChild.py:256 -#: SelectChild.py:261 SelectChild.py:265 plugins/RelCalc.py:305 +#: Report.py:814 +msgid "" +"The filename that you gave is a directory.\n" +"You need to provide a valid filename." +msgstr "" + +#: SelectChild.py:81 SelectChild.py:86 SelectChild.py:90 SelectChild.py:258 +#: SelectChild.py:263 SelectChild.py:267 plugins/RelCalc.py:305 msgid "Relationship to %s" msgstr "" -#: SourceView.py:180 SourceView.py:182 gramps.glade:3060 +#: SourceView.py:126 SourceView.py:128 gramps.glade:3061 msgid "Delete Source" msgstr "" -#: SourceView.py:181 +#: SourceView.py:127 msgid "This source is currently being used. Delete anyway?" msgstr "" -#: SourceView.py:183 +#: SourceView.py:129 msgid "Keep Source" msgstr "" @@ -1498,7 +1532,7 @@ msgstr "" msgid "Private" msgstr "" -#: Utils.py:556 +#: Utils.py:542 msgid "default" msgstr "" @@ -1506,7 +1540,7 @@ msgstr "" msgid "RCS" msgstr "" -#: WriteXML.py:84 +#: WriteXML.py:78 msgid "Failure writing %s, original file restored" msgstr "" @@ -1536,7 +1570,7 @@ msgid "" "files, you may leave it blank." msgstr "" -#: config.glade:182 dialog.glade:1064 gramps.glade:3305 places.glade:194 +#: config.glade:182 dialog.glade:1494 gramps.glade:3306 places.glade:194 #: places.glade:715 places.glade:1110 preferences.glade:1815 msgid "City" msgstr "" @@ -1625,269 +1659,269 @@ msgstr "" msgid "GRAMPS (Genealogical Research and Analysis Management Programming System) is a personal genealogy program." msgstr "" -#: const.py:122 const.py:240 gramps.glade:5081 gramps.glade:5240 -#: gramps.glade:5656 gramps.glade:5721 gramps.glade:6698 gramps.glade:6745 +#: const.py:123 const.py:241 gramps.glade:5294 gramps.glade:5553 +#: gramps.glade:5969 gramps.glade:6034 gramps.glade:7011 gramps.glade:7058 msgid "Adopted" msgstr "" -#: const.py:123 gramps.glade:5081 gramps.glade:5240 gramps.glade:5656 -#: gramps.glade:5721 gramps.glade:6698 gramps.glade:6745 +#: const.py:124 gramps.glade:5294 gramps.glade:5553 gramps.glade:5969 +#: gramps.glade:6034 gramps.glade:7011 gramps.glade:7058 msgid "Stepchild" msgstr "" -#: const.py:124 gramps.glade:5081 gramps.glade:5240 +#: const.py:125 gramps.glade:5294 gramps.glade:5553 msgid "Foster" msgstr "" -#: const.py:127 const.py:402 const.py:410 mergedata.glade:268 +#: const.py:128 const.py:403 const.py:411 mergedata.glade:268 msgid "Other" msgstr "" -#: const.py:136 srcsel.glade:617 +#: const.py:137 srcsel.glade:617 msgid "Very Low" msgstr "" -#: const.py:137 plugins/Merge.py:88 srcsel.glade:617 +#: const.py:138 plugins/Merge.py:88 srcsel.glade:617 msgid "Low" msgstr "" -#: const.py:138 srcsel.glade:617 +#: const.py:139 srcsel.glade:617 msgid "Normal" msgstr "" -#: const.py:139 plugins/Merge.py:96 srcsel.glade:617 +#: const.py:140 plugins/Merge.py:96 srcsel.glade:617 msgid "High" msgstr "" -#: const.py:140 srcsel.glade:617 +#: const.py:141 srcsel.glade:617 msgid "Very High" msgstr "" -#: const.py:160 +#: const.py:161 msgid "Annulment" msgstr "" -#: const.py:161 const.py:255 +#: const.py:162 const.py:256 msgid "Divorce Filing" msgstr "" -#: const.py:162 +#: const.py:163 msgid "Divorce" msgstr "" -#: const.py:163 +#: const.py:164 msgid "Engagement" msgstr "" -#: const.py:164 +#: const.py:165 msgid "Marriage Contract" msgstr "" -#: const.py:165 +#: const.py:166 msgid "Marriage License" msgstr "" -#: const.py:166 +#: const.py:167 msgid "Marriage Settlement" msgstr "" -#: const.py:167 +#: const.py:168 msgid "Marriage" msgstr "" -#: const.py:241 +#: const.py:242 msgid "Alternate Birth" msgstr "" -#: const.py:242 +#: const.py:243 msgid "Alternate Death" msgstr "" -#: const.py:243 +#: const.py:244 msgid "Adult Christening" msgstr "" -#: const.py:244 +#: const.py:245 msgid "Baptism" msgstr "" -#: const.py:245 +#: const.py:246 msgid "Bar Mitzvah" msgstr "" -#: const.py:246 +#: const.py:247 msgid "Bas Mitzvah" msgstr "" -#: const.py:247 +#: const.py:248 msgid "Blessing" msgstr "" -#: const.py:248 +#: const.py:249 msgid "Burial" msgstr "" -#: const.py:249 +#: const.py:250 msgid "Cause Of Death" msgstr "" -#: const.py:250 +#: const.py:251 msgid "Census" msgstr "" -#: const.py:251 +#: const.py:252 msgid "Christening" msgstr "" -#: const.py:252 +#: const.py:253 msgid "Confirmation" msgstr "" -#: const.py:253 +#: const.py:254 msgid "Cremation" msgstr "" -#: const.py:254 +#: const.py:255 msgid "Degree" msgstr "" -#: const.py:256 +#: const.py:257 msgid "Education" msgstr "" -#: const.py:257 +#: const.py:258 msgid "Elected" msgstr "" -#: const.py:258 +#: const.py:259 msgid "Emigration" msgstr "" -#: const.py:259 +#: const.py:260 msgid "First Communion" msgstr "" -#: const.py:260 +#: const.py:261 msgid "Immigration" msgstr "" -#: const.py:261 +#: const.py:262 msgid "Graduation" msgstr "" -#: const.py:262 +#: const.py:263 msgid "Medical Information" msgstr "" -#: const.py:263 +#: const.py:264 msgid "Military Service" msgstr "" -#: const.py:264 +#: const.py:265 msgid "Naturalization" msgstr "" -#: const.py:265 +#: const.py:266 msgid "Nobility Title" msgstr "" -#: const.py:266 +#: const.py:267 msgid "Number of Marriages" msgstr "" -#: const.py:267 +#: const.py:268 msgid "Occupation" msgstr "" -#: const.py:268 +#: const.py:269 msgid "Ordination" msgstr "" -#: const.py:269 +#: const.py:270 msgid "Probate" msgstr "" -#: const.py:270 +#: const.py:271 msgid "Property" msgstr "" -#: const.py:271 +#: const.py:272 msgid "Religion" msgstr "" -#: const.py:272 +#: const.py:273 msgid "Residence" msgstr "" -#: const.py:273 +#: const.py:274 msgid "Retirement" msgstr "" -#: const.py:274 +#: const.py:275 msgid "Will" msgstr "" -#: const.py:319 +#: const.py:320 msgid "Caste" msgstr "" -#: const.py:321 +#: const.py:322 msgid "Identification Number" msgstr "" -#: const.py:322 +#: const.py:323 msgid "National Origin" msgstr "" -#: const.py:323 +#: const.py:324 msgid "Social Security Number" msgstr "" -#: const.py:398 +#: const.py:399 msgid "A legal or common-law relationship between a husband and wife" msgstr "" -#: const.py:399 +#: const.py:400 msgid "No legal or common-law relationship between man and woman" msgstr "" -#: const.py:399 const.py:407 +#: const.py:400 const.py:408 msgid "Unmarried" msgstr "" -#: const.py:400 +#: const.py:401 msgid "An established relationship between members of the same sex" msgstr "" -#: const.py:401 +#: const.py:402 msgid "Unknown relationship between a man and woman" msgstr "" -#: const.py:402 +#: const.py:403 msgid "An unspecified relationship between a man and woman" msgstr "" -#: const.py:426 +#: const.py:427 msgid "No definition available" msgstr "" -#: const.py:867 +#: const.py:868 msgid "Also Known As" msgstr "" -#: const.py:868 +#: const.py:869 msgid "Birth Name" msgstr "" -#: const.py:869 +#: const.py:870 msgid "Married Name" msgstr "" -#: const.py:870 +#: const.py:871 msgid "Other Name" msgstr "" -#: dialog.glade:18 dialog.glade:939 +#: dialog.glade:18 dialog.glade:1369 msgid "Event Editor - GRAMPS" msgstr "" @@ -1895,109 +1929,93 @@ msgstr "" msgid "Event Editor" msgstr "" -#: dialog.glade:142 +#: dialog.glade:154 msgid "Event Type" msgstr "" -#: dialog.glade:369 dialog.glade:900 dialog.glade:1601 dialog.glade:2128 -#: dialog.glade:2431 -msgid "Private Record" -msgstr "" - -#: dialog.glade:383 dialog.glade:914 -msgid "Edit source information for the highlighted event" -msgstr "" - -#: dialog.glade:391 dialog.glade:922 dialog.glade:1623 dialog.glade:2453 -msgid "Edit Source" -msgstr "" - -#: dialog.glade:501 dialog.glade:1883 +#: dialog.glade:398 dialog.glade:2209 msgid "Selects the calendar format for display" msgstr "" -#: dialog.glade:577 +#: dialog.glade:471 dialog.glade:1049 dialog.glade:2229 dialog.glade:2771 +#: dialog.glade:3237 +msgid "Private Record" +msgstr "" + +#: dialog.glade:791 msgid "Attribute Editor - GRAMPS" msgstr "" -#: dialog.glade:660 +#: dialog.glade:874 msgid "Attribute Editor" msgstr "" -#: dialog.glade:1090 gramps.glade:3362 places.glade:246 places.glade:689 +#: dialog.glade:1520 gramps.glade:3363 places.glade:246 places.glade:689 #: places.glade:1123 msgid "County" msgstr "" -#: dialog.glade:1142 gramps.glade:3419 places.glade:220 places.glade:767 +#: dialog.glade:1572 gramps.glade:3420 places.glade:220 places.glade:767 #: places.glade:1136 msgid "State" msgstr "" -#: dialog.glade:1265 gramps.glade:3248 places.glade:597 places.glade:1001 +#: dialog.glade:1695 gramps.glade:3249 places.glade:597 places.glade:1001 msgid "Church Parish" msgstr "" -#: dialog.glade:1320 +#: dialog.glade:1749 msgid "Address Editor - GRAMPS" msgstr "" -#: dialog.glade:1362 dialog.glade:1948 dialog.glade:2215 gramps.glade:5962 +#: dialog.glade:1791 dialog.glade:2591 dialog.glade:2857 gramps.glade:6275 #: marriage.glade:66 msgid "Accept and close" msgstr "" -#: dialog.glade:1404 +#: dialog.glade:1833 msgid "Address Editor" msgstr "" -#: dialog.glade:1615 -msgid "Edit source information for this address" -msgstr "" - -#: dialog.glade:1906 +#: dialog.glade:2549 msgid "Internet Address Editor - GRAMPS" msgstr "" -#: dialog.glade:2173 +#: dialog.glade:2815 msgid "Alternate Name Editor - GRAMPS" msgstr "" -#: dialog.glade:2231 gramps.glade:5978 marriage.glade:82 +#: dialog.glade:2873 gramps.glade:6291 marriage.glade:82 msgid "Reject changes and close" msgstr "" -#: dialog.glade:2258 +#: dialog.glade:2900 msgid "Alternate Name Editor" msgstr "" -#: dialog.glade:2445 -msgid "Edit source information for this name" -msgstr "" - #: docgen/AbiWordDoc.py:322 msgid "AbiWord" msgstr "" -#: docgen/HtmlDoc.py:142 docgen/HtmlDoc.py:167 +#: docgen/HtmlDoc.py:148 docgen/HtmlDoc.py:173 msgid "The marker '' was not in the template" msgstr "" -#: docgen/HtmlDoc.py:178 docgen/HtmlDoc.py:185 +#: docgen/HtmlDoc.py:184 docgen/HtmlDoc.py:191 msgid "" "Could not open %s\n" "Using the default template" msgstr "" -#: docgen/HtmlDoc.py:388 plugins/eventcmp.glade:195 +#: docgen/HtmlDoc.py:395 plugins/eventcmp.glade:195 msgid "HTML" msgstr "" -#: docgen/KwordDoc.py:479 +#: docgen/KwordDoc.py:478 msgid "KWord" msgstr "" -#: docgen/LaTeXDoc.py:386 +#: docgen/LaTeXDoc.py:387 msgid "LaTeX" msgstr "" @@ -2005,7 +2023,7 @@ msgstr "" msgid "OpenOffice/StarOffice 6" msgstr "" -#: docgen/PSDrawDoc.py:168 +#: docgen/PSDrawDoc.py:167 msgid "PostScript" msgstr "" @@ -2029,7 +2047,7 @@ msgstr "" msgid "SVG (Scalable Vector Graphics)" msgstr "" -#: filters/After.py:56 +#: filters/After.py:55 msgid "People with an event after ..." msgstr "" @@ -2037,15 +2055,15 @@ msgstr "" msgid "People who were adopted" msgstr "" -#: filters/Before.py:56 +#: filters/Before.py:55 msgid "People with an event before ..." msgstr "" -#: filters/Disconnected.py:40 plugins/Summary.py:99 +#: filters/Disconnected.py:39 plugins/Summary.py:113 msgid "Disconnected individuals" msgstr "" -#: filters/EventPlace.py:71 +#: filters/EventPlace.py:69 msgid "People with an event location of ..." msgstr "" @@ -2053,7 +2071,7 @@ msgstr "" msgid "People who have an event type of ..." msgstr "" -#: filters/Females.py:40 plugins/Summary.py:96 +#: filters/Females.py:40 plugins/Summary.py:110 msgid "Females" msgstr "" @@ -2065,19 +2083,19 @@ msgstr "" msgid "People with incomplete names" msgstr "" -#: filters/Males.py:40 plugins/Summary.py:95 +#: filters/Males.py:40 plugins/Summary.py:109 msgid "Males" msgstr "" -#: filters/MatchSndEx.py:45 +#: filters/MatchSndEx.py:44 msgid "Names with same SoundEx code as ..." msgstr "" -#: filters/MatchSndEx2.py:41 +#: filters/MatchSndEx2.py:40 msgid "Names with the specified SoundEx code" msgstr "" -#: filters/MatchSndEx2.py:42 plugins/soundex.glade:169 +#: filters/MatchSndEx2.py:41 plugins/soundex.glade:169 msgid "SoundEx Code" msgstr "" @@ -2109,7 +2127,7 @@ msgstr "" msgid "Names that contain a substring" msgstr "" -#: gramps.glade:35 gramps_main.py:746 gramps_main.py:806 preferences.glade:173 +#: gramps.glade:35 preferences.glade:173 msgid "GRAMPS" msgstr "" @@ -2277,7 +2295,7 @@ msgstr "" msgid "Show active person's anscestors" msgstr "" -#: gramps.glade:641 gramps.glade:2760 +#: gramps.glade:641 gramps.glade:2761 msgid "Pedigree" msgstr "" @@ -2293,7 +2311,7 @@ msgstr "" msgid "Display the list of media objects" msgstr "" -#: gramps.glade:686 gramps.glade:4472 +#: gramps.glade:686 gramps.glade:4473 msgid "Media" msgstr "" @@ -2321,330 +2339,331 @@ msgstr "" msgid "Invert" msgstr "" -#: gramps.glade:1161 gramps.glade:2592 gramps.glade:5014 gramps.glade:5173 -#: gramps.glade:5539 mergedata.glade:466 mergedata.glade:1232 +#: gramps.glade:1162 gramps.glade:2593 gramps.glade:4775 gramps.glade:5188 +#: gramps.glade:5447 gramps.glade:5852 mergedata.glade:466 +#: mergedata.glade:1232 msgid "Birth Date" msgstr "" -#: gramps.glade:1218 mergedata.glade:492 mergedata.glade:1154 +#: gramps.glade:1219 mergedata.glade:492 mergedata.glade:1154 msgid "Death Date" msgstr "" -#: gramps.glade:1319 gramps.glade:7054 +#: gramps.glade:1320 gramps.glade:7367 msgid "Add Person" msgstr "" -#: gramps.glade:1333 +#: gramps.glade:1334 msgid "Edit/View Person" msgstr "" -#: gramps.glade:1347 gramps_main.py:872 gramps_main.py:873 +#: gramps.glade:1348 gramps_main.py:883 gramps_main.py:884 msgid "Delete Person" msgstr "" -#: gramps.glade:1398 +#: gramps.glade:1399 msgid "Active Person" msgstr "" -#: gramps.glade:1451 +#: gramps.glade:1452 msgid "Exchange active person and displayed spouse" msgstr "" -#: gramps.glade:1516 gramps_main.py:1536 gramps_main.py:1561 -#: gramps_main.py:1959 +#: gramps.glade:1517 gramps_main.py:1383 gramps_main.py:1408 +#: gramps_main.py:1769 msgid "Relationship" msgstr "" -#: gramps.glade:1555 plugins/FamilyGroup.py:277 plugins/FamilyGroup.py:381 +#: gramps.glade:1556 plugins/FamilyGroup.py:275 plugins/FamilyGroup.py:379 msgid "Spouse" msgstr "" -#: gramps.glade:1607 +#: gramps.glade:1608 msgid "Make this the preferred spouse" msgstr "" -#: gramps.glade:1743 places.glade:1201 places.glade:1706 +#: gramps.glade:1744 places.glade:1201 places.glade:1706 msgid "Edit/View" msgstr "" -#: gramps.glade:1853 +#: gramps.glade:1854 msgid "Make the current father the active person" msgstr "" -#: gramps.glade:1944 +#: gramps.glade:1945 msgid "Make the current mother the active person" msgstr "" -#: gramps.glade:2004 gramps.glade:2059 +#: gramps.glade:2005 gramps.glade:2060 msgid "Related by:" msgstr "" -#: gramps.glade:2114 +#: gramps.glade:2115 msgid "Select the previous parents" msgstr "" -#: gramps.glade:2145 +#: gramps.glade:2146 msgid "Select the next parents" msgstr "" -#: gramps.glade:2208 +#: gramps.glade:2209 msgid "Make these the preferred parents" msgstr "" -#: gramps.glade:2239 +#: gramps.glade:2240 msgid "Add/Edit/View" msgstr "" -#: gramps.glade:2264 plugins/FamilyGroup.py:311 plugins/IndivComplete.py:272 -#: plugins/IndivSummary.py:174 plugins/WebPage.py:521 +#: gramps.glade:2265 plugins/FamilyGroup.py:309 plugins/IndivComplete.py:272 +#: plugins/IndivSummary.py:174 plugins/WebPage.py:537 msgid "Children" msgstr "" -#: gramps.glade:2307 +#: gramps.glade:2308 msgid "Make the selected child the active person" msgstr "" -#: gramps.glade:2357 +#: gramps.glade:2358 msgid "Click column headers to sort. When sorted by birth date, drag and drop to reorder children." msgstr "" -#: gramps.glade:2630 +#: gramps.glade:2631 msgid "Status" msgstr "" -#: gramps.glade:2673 +#: gramps.glade:2674 msgid "Choose child from the database" msgstr "" -#: gramps.glade:2681 +#: gramps.glade:2682 msgid "Add Existing Child" msgstr "" -#: gramps.glade:2688 +#: gramps.glade:2689 msgid "Add new person to database (and this family)" msgstr "" -#: gramps.glade:2696 gramps.glade:6571 +#: gramps.glade:2697 gramps.glade:6884 msgid "Add New Child" msgstr "" -#: gramps.glade:2703 +#: gramps.glade:2704 msgid "Remove selected child from this family" msgstr "" -#: gramps.glade:2711 +#: gramps.glade:2712 msgid "Remove Child" msgstr "" -#: gramps.glade:2942 gramps.glade:6096 srcsel.glade:182 +#: gramps.glade:2943 gramps.glade:6409 srcsel.glade:182 msgid "Author" msgstr "" -#: gramps.glade:3030 +#: gramps.glade:3031 msgid "Add Source" msgstr "" -#: gramps.glade:3045 +#: gramps.glade:3046 msgid "Edit/View Source" msgstr "" -#: gramps.glade:3135 +#: gramps.glade:3136 msgid "Place Name" msgstr "" -#: gramps.glade:3617 +#: gramps.glade:3618 msgid "Add Place" msgstr "" -#: gramps.glade:3632 +#: gramps.glade:3633 msgid "Edit/View Place" msgstr "" -#: gramps.glade:3686 imagesel.glade:157 +#: gramps.glade:3687 imagesel.glade:157 msgid "Preview" msgstr "" -#: gramps.glade:3706 plugins/pafexport.glade:179 +#: gramps.glade:3707 plugins/pafexport.glade:179 msgid "Information" msgstr "" -#: gramps.glade:3935 gramps.glade:4346 imagesel.glade:508 imagesel.glade:1585 +#: gramps.glade:3936 gramps.glade:4347 imagesel.glade:508 imagesel.glade:1585 msgid "Path" msgstr "" -#: gramps.glade:4447 +#: gramps.glade:4448 msgid "Edit Media Object" msgstr "" -#: gramps.glade:4511 +#: gramps.glade:4512 msgid "Select File - GRAMPS" msgstr "" -#: gramps.glade:4532 +#: gramps.glade:4533 msgid "OK" msgstr "" -#: gramps.glade:4548 +#: gramps.glade:4549 msgid "Cancel" msgstr "" -#: gramps.glade:4556 +#: gramps.glade:4557 msgid "Choose Spouse - GRAMPS" msgstr "" -#: gramps.glade:4626 +#: gramps.glade:4627 msgid "Choose Spouse/Partner" msgstr "" -#: gramps.glade:4714 plugins/relcalc.glade:183 -msgid "Birthdate" -msgstr "" - -#: gramps.glade:4752 +#: gramps.glade:4865 msgid "Add new person" msgstr "" -#: gramps.glade:4819 +#: gramps.glade:4932 msgid "Relationship definition" msgstr "" -#: gramps.glade:4840 +#: gramps.glade:4953 msgid "Choose Parents - GRAMPS" msgstr "" -#: gramps.glade:4924 +#: gramps.glade:5037 msgid "Choose Parents" msgstr "" -#: gramps.glade:5053 gramps.glade:5212 +#: gramps.glade:5266 gramps.glade:5525 msgid "Relationship to child" msgstr "" -#: gramps.glade:5292 +#: gramps.glade:5605 msgid "Add New Person" msgstr "" -#: gramps.glade:5321 +#: gramps.glade:5634 msgid "Parent Relationship" msgstr "" -#: gramps.glade:5380 +#: gramps.glade:5693 msgid "Add Child - GRAMPS" msgstr "" -#: gramps.glade:5463 +#: gramps.glade:5776 msgid "Add Children" msgstr "" -#: gramps.glade:5573 +#: gramps.glade:5886 msgid "Hide people not likely to be a child of this family" msgstr "" -#: gramps.glade:5600 gramps.glade:6612 +#: gramps.glade:5913 gramps.glade:6925 msgid "Relationship to Father" msgstr "" -#: gramps.glade:5685 gramps.glade:6941 +#: gramps.glade:5998 gramps.glade:7254 msgid "Relationship to Mother" msgstr "" -#: gramps.glade:5762 +#: gramps.glade:6075 msgid "Marriage Editor - GRAMPS" msgstr "" -#: gramps.glade:5845 +#: gramps.glade:6158 msgid "Marriage Editor" msgstr "" -#: gramps.glade:5873 +#: gramps.glade:6186 msgid "Edit marriage information" msgstr "" -#: gramps.glade:5888 +#: gramps.glade:6201 msgid "Add a new spouse" msgstr "" -#: gramps.glade:5903 +#: gramps.glade:6216 msgid "Remove current spouse" msgstr "" -#: gramps.glade:5920 +#: gramps.glade:6233 msgid "Source Editor - GRAMPS" msgstr "" -#: gramps.glade:6010 +#: gramps.glade:6323 msgid "Source Editor" msgstr "" -#: gramps.glade:6122 +#: gramps.glade:6435 msgid "Publication Info" msgstr "" -#: gramps.glade:6413 +#: gramps.glade:6726 msgid "Category" msgstr "" -#: gramps.glade:6439 +#: gramps.glade:6752 msgid "Item" msgstr "" -#: gramps.glade:6454 imagesel.glade:2398 places.glade:1761 +#: gramps.glade:6767 imagesel.glade:2398 places.glade:1761 msgid "References" msgstr "" -#: gramps.glade:6470 +#: gramps.glade:6783 msgid "Add New Child - GRAMPS" msgstr "" -#: gramps.glade:6512 +#: gramps.glade:6825 msgid "Creates the new child and adds him or her as a child of the family" msgstr "" -#: gramps.glade:6528 +#: gramps.glade:6841 msgid "Adds the new person as a child of the family and displays the standard person dialog to allow for more data to be entered" msgstr "" -#: gramps.glade:6537 +#: gramps.glade:6850 msgid "Add Data" msgstr "" -#: gramps.glade:6971 +#: gramps.glade:7284 msgid "Add Person - GRAMPS" msgstr "" -#: gramps.glade:7301 +#: gramps.glade:7614 msgid "Open a Database - GRAMPS" msgstr "" -#: gramps.glade:7385 +#: gramps.glade:7698 msgid "Open a Database" msgstr "" -#: gramps.glade:7414 +#: gramps.glade:7727 msgid "Open an Existing Database" msgstr "" -#: gramps.glade:7430 -msgid "Create a New Database" +#: gramps.glade:7743 +msgid "Create a New XML Database" msgstr "" -#: gramps.glade:7447 +#: gramps.glade:7760 +msgid "Create a New ZODB Database" +msgstr "" + +#: gramps.glade:7777 msgid "Question - GRAMPS" msgstr "" -#: gramps.glade:7496 +#: gramps.glade:7826 msgid "Choose Spouse" msgstr "" -#: gramps.glade:7509 +#: gramps.glade:7839 msgid "New Relationship" msgstr "" -#: gramps.glade:7540 +#: gramps.glade:7870 msgid "Add a Spouse or Create a New Relationhip" msgstr "" -#: gramps.glade:7581 +#: gramps.glade:7911 msgid "" "No spouse has been defined for the current relationship.\n" "\n" @@ -2652,165 +2671,169 @@ msgid "" "or create a new relationship." msgstr "" -#: gramps_main.py:113 +#: gramps_main.py:109 msgid "" "You are running GRAMPS as the 'root' user.\n" "This account is not meant for normal application use." msgstr "" -#: gramps_main.py:390 +#: gramps_main.py:380 msgid "Exactly two people must be selected to perform a merge" msgstr "" -#: gramps_main.py:412 +#: gramps_main.py:403 msgid "" "Unsaved changes exist in the current database\n" "Do you wish to save the changes?" msgstr "" -#: gramps_main.py:414 +#: gramps_main.py:405 msgid "Save Changes" msgstr "" -#: gramps_main.py:590 +#: gramps_main.py:587 msgid "Do you want to close the current database and create a new one?" msgstr "" -#: gramps_main.py:591 +#: gramps_main.py:588 msgid "New Database" msgstr "" -#: gramps_main.py:592 +#: gramps_main.py:589 msgid "Close Current Database" msgstr "" -#: gramps_main.py:593 +#: gramps_main.py:590 msgid "Return to Current Database" msgstr "" -#: gramps_main.py:706 +#: gramps_main.py:717 msgid "" "An autosave file exists for %s.\n" "Should this be loaded instead of the last saved version?" msgstr "" -#: gramps_main.py:711 +#: gramps_main.py:722 msgid "Autosave File" msgstr "" -#: gramps_main.py:712 +#: gramps_main.py:723 msgid "Load Autosave File" msgstr "" -#: gramps_main.py:713 +#: gramps_main.py:724 msgid "Load Last Saved File" msgstr "" -#: gramps_main.py:737 gramps_main.py:773 +#: gramps_main.py:748 gramps_main.py:784 msgid "%s is not a directory" msgstr "" -#: gramps_main.py:740 +#: gramps_main.py:751 msgid "Loading %s ..." msgstr "" -#: gramps_main.py:766 +#: gramps_main.py:777 msgid "Saving %s ..." msgstr "" -#: gramps_main.py:826 +#: gramps_main.py:837 msgid "autosaving..." msgstr "" -#: gramps_main.py:829 +#: gramps_main.py:840 msgid "autosave complete" msgstr "" -#: gramps_main.py:831 +#: gramps_main.py:842 msgid "autosave failed" msgstr "" -#: gramps_main.py:840 +#: gramps_main.py:851 msgid "You requested too many people to edit at the same time" msgstr "" -#: gramps_main.py:870 +#: gramps_main.py:881 msgid "Do you really wish to delete %s?" msgstr "" -#: gramps_main.py:874 +#: gramps_main.py:885 msgid "Keep Person" msgstr "" -#: gramps_main.py:876 +#: gramps_main.py:887 msgid "Currently, you can only delete one person at a time" msgstr "" -#: gramps_main.py:1172 +#: gramps_main.py:1043 msgid "Invalid move. Children must be ordered by birth date." msgstr "" -#: gramps_main.py:1220 +#: gramps_main.py:1091 msgid "Do you wish to abandon your changes and revert to the last saved database?" msgstr "" -#: gramps_main.py:1224 +#: gramps_main.py:1095 msgid "Revert to Last Database" msgstr "" -#: gramps_main.py:1225 +#: gramps_main.py:1096 msgid "Continue with Current Database" msgstr "" -#: gramps_main.py:1227 +#: gramps_main.py:1098 msgid "Cannot revert to a previous database, since one does not exist" msgstr "" -#: gramps_main.py:1534 gramps_main.py:1957 +#: gramps_main.py:1381 gramps_main.py:1767 msgid "Preferred Relationship" msgstr "" -#: gramps_main.py:1570 +#: gramps_main.py:1417 msgid "No Relationship" msgstr "" -#: gramps_main.py:1600 +#: gramps_main.py:1447 msgid "Preferred Parents (%d of %d)" msgstr "" -#: gramps_main.py:1602 +#: gramps_main.py:1449 msgid "Preferred Parents" msgstr "" -#: gramps_main.py:1605 +#: gramps_main.py:1452 msgid "Alternate Parents (%d of %d)" msgstr "" -#: gramps_main.py:1608 +#: gramps_main.py:1455 msgid "No Parents" msgstr "" -#: gramps_main.py:1896 +#: gramps_main.py:1703 msgid "No default/home person has been set" msgstr "" -#: gramps_main.py:1901 +#: gramps_main.py:1709 msgid "%s has been bookmarked" msgstr "" -#: gramps_main.py:1914 +#: gramps_main.py:1712 +msgid "Bookmark could not be set because no one was selected" +msgstr "" + +#: gramps_main.py:1724 msgid "Do you wish to set %s as the home person?" msgstr "" -#: gramps_main.py:1916 +#: gramps_main.py:1726 msgid "Set Home Person" msgstr "" -#: gramps_main.py:1917 +#: gramps_main.py:1727 msgid "Set as Home Person" msgstr "" -#: gramps_main.py:1918 +#: gramps_main.py:1728 msgid "Do not change Home Person" msgstr "" @@ -2890,27 +2913,27 @@ msgstr "" msgid "Marriage/Relationship Editor" msgstr "" -#: marriage.glade:897 +#: marriage.glade:975 msgid "Add new event for this marriage" msgstr "" -#: marriage.glade:913 +#: marriage.glade:991 msgid "Modify the selected event" msgstr "" -#: marriage.glade:929 +#: marriage.glade:1007 msgid "Delete selected event" msgstr "" -#: marriage.glade:1308 +#: marriage.glade:1464 msgid "Create a new attribute for this marriage" msgstr "" -#: marriage.glade:1324 +#: marriage.glade:1480 msgid "Modify the selected attribute" msgstr "" -#: marriage.glade:1538 +#: marriage.glade:1694 msgid "Spouse Sealing" msgstr "" @@ -3018,476 +3041,570 @@ msgstr "" msgid "Plugin Status - GRAMPS" msgstr "" -#: plugins/AncestorChart.py:132 plugins/AncestorChart.py:151 +#: plugins/AncestorChart.py:103 plugins/AncestorChart.py:122 msgid "Document write failure" msgstr "" -#: plugins/AncestorChart.py:257 plugins/AncestorChart.py:469 +#: plugins/AncestorChart.py:228 plugins/AncestorChart.py:443 msgid "Ancestor Chart" msgstr "" -#: plugins/AncestorChart.py:257 plugins/AncestorChart.py:470 -#: plugins/DesGraph.py:307 plugins/DesGraph.py:452 plugins/GraphViz.py:61 -#: plugins/GraphViz.py:391 +#: plugins/AncestorChart.py:228 plugins/AncestorChart.py:444 +#: plugins/DesGraph.py:302 plugins/DesGraph.py:451 plugins/GraphViz.py:64 +#: plugins/GraphViz.py:394 msgid "Graphical Reports" msgstr "" -#: plugins/AncestorChart.py:261 +#: plugins/AncestorChart.py:232 msgid "Ancestor Chart for %s" msgstr "" -#: plugins/AncestorChart.py:266 +#: plugins/AncestorChart.py:237 msgid "Save Ancestor Chart" msgstr "" -#: plugins/AncestorChart.py:278 plugins/DesGraph.py:324 +#: plugins/AncestorChart.py:249 plugins/DesGraph.py:319 msgid "Display Format" msgstr "" -#: plugins/AncestorChart.py:279 plugins/DesGraph.py:325 +#: plugins/AncestorChart.py:250 plugins/DesGraph.py:320 msgid "Allows you to customize the data in the boxes in the report" msgstr "" -#: plugins/AncestorChart.py:471 plugins/AncestorReport.py:404 -#: plugins/DescendReport.py:305 plugins/DetAncestralReport.py:634 -#: plugins/FamilyGroup.py:550 plugins/GraphViz.py:390 -#: plugins/IndivComplete.py:657 plugins/IndivSummary.py:521 -#: plugins/Summary.py:133 plugins/WebPage.py:1113 +#: plugins/AncestorChart.py:445 plugins/AncestorReport.py:383 +#: plugins/DescendReport.py:285 plugins/DetAncestralReport.py:822 +#: plugins/DetDescendantReport.py:895 plugins/FamilyGroup.py:548 +#: plugins/GraphViz.py:393 plugins/IndivComplete.py:657 +#: plugins/IndivSummary.py:521 plugins/Summary.py:147 plugins/WebPage.py:1248 msgid "Beta" msgstr "" -#: plugins/AncestorChart.py:472 +#: plugins/AncestorChart.py:446 msgid "Produces a graphical ancestral tree graph" msgstr "" -#: plugins/AncestorReport.py:59 plugins/DetAncestralReport.py:59 +#: plugins/AncestorReport.py:55 plugins/DetAncestralReport.py:63 +#: plugins/DetDescendantReport.py:64 msgid "Could not open %s" msgstr "" -#: plugins/AncestorReport.py:87 plugins/AncestorReport.py:242 +#: plugins/AncestorReport.py:73 plugins/AncestorReport.py:227 msgid "Ahnentafel Report for %s" msgstr "" -#: plugins/AncestorReport.py:100 plugins/DetAncestralReport.py:421 +#: plugins/AncestorReport.py:86 plugins/DetAncestralReport.py:623 +#: plugins/DetDescendantReport.py:651 msgid "%s Generation" msgstr "" -#: plugins/AncestorReport.py:129 +#: plugins/AncestorReport.py:115 msgid "%s was born on %s in %s. " msgstr "" -#: plugins/AncestorReport.py:132 +#: plugins/AncestorReport.py:118 msgid "%s was born on %s. " msgstr "" -#: plugins/AncestorReport.py:136 +#: plugins/AncestorReport.py:122 msgid "%s was born in the year %s in %s. " msgstr "" -#: plugins/AncestorReport.py:139 +#: plugins/AncestorReport.py:125 msgid "%s was born in the year %s. " msgstr "" -#: plugins/AncestorReport.py:164 +#: plugins/AncestorReport.py:150 msgid "He died on %s in %s" msgstr "" -#: plugins/AncestorReport.py:167 +#: plugins/AncestorReport.py:153 msgid "He died on %s" msgstr "" -#: plugins/AncestorReport.py:170 +#: plugins/AncestorReport.py:156 msgid "She died on %s in %s" msgstr "" -#: plugins/AncestorReport.py:173 +#: plugins/AncestorReport.py:159 msgid "She died on %s" msgstr "" -#: plugins/AncestorReport.py:177 +#: plugins/AncestorReport.py:163 msgid "He died in the year %s in %s" msgstr "" -#: plugins/AncestorReport.py:180 +#: plugins/AncestorReport.py:166 msgid "He died in the year %s" msgstr "" -#: plugins/AncestorReport.py:183 +#: plugins/AncestorReport.py:169 msgid "She died in the year %s in %s" msgstr "" -#: plugins/AncestorReport.py:186 +#: plugins/AncestorReport.py:172 msgid "She died in the year %s" msgstr "" -#: plugins/AncestorReport.py:199 +#: plugins/AncestorReport.py:185 msgid ", and was buried on %s in %s." msgstr "" -#: plugins/AncestorReport.py:202 +#: plugins/AncestorReport.py:188 msgid ", and was buried on %s." msgstr "" -#: plugins/AncestorReport.py:206 +#: plugins/AncestorReport.py:192 msgid ", and was buried in the year %s in %s." msgstr "" -#: plugins/AncestorReport.py:209 +#: plugins/AncestorReport.py:195 msgid ", and was buried in the year %s." msgstr "" -#: plugins/AncestorReport.py:212 +#: plugins/AncestorReport.py:198 msgid " and was buried in %s." msgstr "" -#: plugins/AncestorReport.py:238 plugins/AncestorReport.py:402 +#: plugins/AncestorReport.py:223 plugins/AncestorReport.py:381 msgid "Ahnentafel Report" msgstr "" -#: plugins/AncestorReport.py:238 plugins/AncestorReport.py:403 -#: plugins/DescendReport.py:143 plugins/DescendReport.py:304 -#: plugins/DetAncestralReport.py:635 plugins/FamilyGroup.py:338 -#: plugins/FamilyGroup.py:549 plugins/IndivComplete.py:447 -#: plugins/IndivComplete.py:658 plugins/IndivSummary.py:332 -#: plugins/IndivSummary.py:522 +#: plugins/AncestorReport.py:223 plugins/AncestorReport.py:382 +#: plugins/DescendReport.py:129 plugins/DescendReport.py:284 +#: plugins/DetAncestralReport.py:823 plugins/DetDescendantReport.py:896 +#: plugins/FamilyGroup.py:336 plugins/FamilyGroup.py:547 +#: plugins/IndivComplete.py:447 plugins/IndivComplete.py:658 +#: plugins/IndivSummary.py:332 plugins/IndivSummary.py:522 msgid "Text Reports" msgstr "" -#: plugins/AncestorReport.py:247 plugins/DetAncestralReport.py:462 +#: plugins/AncestorReport.py:232 plugins/DetAncestralReport.py:671 msgid "Save Ancestor Report" msgstr "" -#: plugins/AncestorReport.py:405 +#: plugins/AncestorReport.py:384 msgid "Produces a textual ancestral report" msgstr "" -#: plugins/ChangeTypes.py:76 +#: plugins/ChangeTypes.py:80 msgid "1 event record was modified" msgstr "" -#: plugins/ChangeTypes.py:78 +#: plugins/ChangeTypes.py:82 msgid "%d event records were modified" msgstr "" -#: plugins/ChangeTypes.py:92 +#: plugins/ChangeTypes.py:96 msgid "Rename personal event types" msgstr "" -#: plugins/ChangeTypes.py:93 plugins/Check.py:219 plugins/Merge.py:524 -#: plugins/PatchNames.py:120 plugins/ReorderIds.py:106 +#: plugins/ChangeTypes.py:97 plugins/Check.py:223 plugins/Merge.py:528 +#: plugins/PatchNames.py:128 plugins/ReorderIds.py:124 msgid "Database Processing" msgstr "" -#: plugins/ChangeTypes.py:94 +#: plugins/ChangeTypes.py:98 msgid "Allows all the events of a certain name to be renamed to a new name" msgstr "" -#: plugins/Check.py:161 +#: plugins/Check.py:145 msgid "No errors were found" msgstr "" -#: plugins/Check.py:167 +#: plugins/Check.py:151 msgid "" -"1 broken family link was fixed\n" +"1 broken child/family link was fixed\n" msgstr "" -#: plugins/Check.py:169 +#: plugins/Check.py:153 msgid "" -"%d broken family links were found\n" +"%d broken child/family links were found\n" msgstr "" -#: plugins/Check.py:182 +#: plugins/Check.py:166 msgid "" "%s was removed from the family of %s\n" msgstr "" -#: plugins/Check.py:184 +#: plugins/Check.py:170 msgid "" -"1 empty family was found\n" +"1 broken spouse/family link was fixed\n" msgstr "" -#: plugins/Check.py:186 +#: plugins/Check.py:172 msgid "" -"%d empty families were found\n" +"%d broken spouse/family links were found\n" +msgstr "" + +#: plugins/Check.py:185 +msgid "" +"%s was restored to the family of %s\n" msgstr "" #: plugins/Check.py:188 msgid "" -"1 corrupted family relationship fixed\n" +"1 empty family was found\n" msgstr "" #: plugins/Check.py:190 msgid "" -"%d corrupted family relationship fixed\n" +"%d empty families were found\n" msgstr "" #: plugins/Check.py:192 msgid "" -"1 media object was referenced, but not found\n" +"1 corrupted family relationship fixed\n" msgstr "" #: plugins/Check.py:194 msgid "" +"%d corrupted family relationship fixed\n" +msgstr "" + +#: plugins/Check.py:196 +msgid "" +"1 media object was referenced, but not found\n" +msgstr "" + +#: plugins/Check.py:198 +msgid "" "%d media objects were referenced, but not found\n" msgstr "" -#: plugins/Check.py:202 +#: plugins/Check.py:206 msgid "Check Integrity" msgstr "" -#: plugins/Check.py:218 +#: plugins/Check.py:222 msgid "Check and repair database" msgstr "" -#: plugins/Check.py:220 +#: plugins/Check.py:224 msgid "Checks the database for integrity problems, fixing the problems that it can" msgstr "" -#: plugins/DesGraph.py:307 plugins/DesGraph.py:451 +#: plugins/DesGraph.py:302 plugins/DesGraph.py:450 msgid "Descendant Graph" msgstr "" -#: plugins/DesGraph.py:310 +#: plugins/DesGraph.py:305 msgid "Descendant Graph for %s" msgstr "" -#: plugins/DesGraph.py:313 +#: plugins/DesGraph.py:308 msgid "Save Descendant Graph" msgstr "" -#: plugins/DesGraph.py:453 plugins/DescendReport.py:306 +#: plugins/DesGraph.py:452 plugins/DescendReport.py:286 msgid "Generates a list of descendants of the active person" msgstr "" -#: plugins/DesGraph.py:454 +#: plugins/DesGraph.py:453 msgid "Alpha" msgstr "" -#: plugins/Desbrowser.py:92 +#: plugins/Desbrowser.py:112 msgid "Interactive descendant browser" msgstr "" -#: plugins/Desbrowser.py:93 plugins/EventCmp.py:334 +#: plugins/Desbrowser.py:113 plugins/EventCmp.py:332 msgid "Analysis and Exploration" msgstr "" -#: plugins/Desbrowser.py:94 +#: plugins/Desbrowser.py:114 msgid "Provides a browsable hierarchy based on the active person" msgstr "" -#: plugins/DescendReport.py:96 plugins/GraphViz.py:86 -#: plugins/IndivComplete.py:476 plugins/WebPage.py:790 -#: plugins/WriteGedcom.py:318 plugins/WriteGedcomXML.py:429 +#: plugins/DescendReport.py:87 plugins/GraphViz.py:89 +#: plugins/IndivComplete.py:476 plugins/WriteGedcom.py:332 #: plugins/WritePafPalm.py:570 msgid "Descendants of %s" msgstr "" -#: plugins/DescendReport.py:143 plugins/DescendReport.py:303 +#: plugins/DescendReport.py:129 plugins/DescendReport.py:283 msgid "Descendant Report" msgstr "" -#: plugins/DescendReport.py:147 +#: plugins/DescendReport.py:133 plugins/DetDescendantReport.py:638 msgid "Descendant Report for %s" msgstr "" -#: plugins/DescendReport.py:152 +#: plugins/DescendReport.py:138 plugins/DetDescendantReport.py:699 msgid "Save Descendant Report" msgstr "" -#: plugins/DetAncestralReport.py:88 +#: plugins/DetAncestralReport.py:113 plugins/DetDescendantReport.py:124 msgid "Child of %s and %s is:" msgstr "" -#: plugins/DetAncestralReport.py:89 +#: plugins/DetAncestralReport.py:114 plugins/DetDescendantReport.py:125 msgid "Children of %s and %s are:" msgstr "" -#: plugins/DetAncestralReport.py:99 -msgid " Born: " +#: plugins/DetAncestralReport.py:133 plugins/DetDescendantReport.py:144 +msgid "- %s Born: %s %s Died: %s %s" msgstr "" -#: plugins/DetAncestralReport.py:106 -msgid " Died: " +#: plugins/DetAncestralReport.py:137 plugins/DetAncestralReport.py:141 +#: plugins/DetAncestralReport.py:171 plugins/DetDescendantReport.py:148 +#: plugins/DetDescendantReport.py:152 plugins/DetDescendantReport.py:182 +msgid "- %s Born: %s %s Died: %s" msgstr "" -#: plugins/DetAncestralReport.py:122 plugins/DetAncestralReport.py:310 -#: plugins/DetAncestralReport.py:369 +#: plugins/DetAncestralReport.py:144 plugins/DetDescendantReport.py:155 +msgid "- %s Born: %s %s" +msgstr "" + +#: plugins/DetAncestralReport.py:149 plugins/DetAncestralReport.py:164 +#: plugins/DetDescendantReport.py:160 plugins/DetDescendantReport.py:175 +msgid "- %s Born: %s Died: %s %s" +msgstr "" + +#: plugins/DetAncestralReport.py:153 plugins/DetAncestralReport.py:156 +#: plugins/DetAncestralReport.py:168 plugins/DetDescendantReport.py:164 +#: plugins/DetDescendantReport.py:167 plugins/DetDescendantReport.py:179 +msgid "- %s Born: %s Died: %s" +msgstr "" + +#: plugins/DetAncestralReport.py:158 plugins/DetAncestralReport.py:173 +#: plugins/DetDescendantReport.py:169 plugins/DetDescendantReport.py:184 +msgid "- %s Born: %s" +msgstr "" + +#: plugins/DetAncestralReport.py:178 plugins/DetDescendantReport.py:189 +msgid "- %s Died: %s %s" +msgstr "" + +#: plugins/DetAncestralReport.py:181 plugins/DetAncestralReport.py:184 +#: plugins/DetDescendantReport.py:192 plugins/DetDescendantReport.py:195 +msgid "- %s Died: %s" +msgstr "" + +#: plugins/DetAncestralReport.py:186 plugins/DetDescendantReport.py:197 +msgid "- %s" +msgstr "" + +#: plugins/DetAncestralReport.py:204 plugins/DetAncestralReport.py:446 +#: plugins/DetAncestralReport.py:513 plugins/DetDescendantReport.py:215 +#: plugins/DetDescendantReport.py:457 plugins/DetDescendantReport.py:525 msgid "He" msgstr "" -#: plugins/DetAncestralReport.py:124 plugins/DetAncestralReport.py:312 -#: plugins/DetAncestralReport.py:371 +#: plugins/DetAncestralReport.py:206 plugins/DetAncestralReport.py:452 +#: plugins/DetAncestralReport.py:515 plugins/DetDescendantReport.py:217 +#: plugins/DetDescendantReport.py:463 plugins/DetDescendantReport.py:527 msgid "She" msgstr "" -#: plugins/DetAncestralReport.py:143 +#: plugins/DetAncestralReport.py:219 plugins/DetDescendantReport.py:230 +msgid " is the same person as [%s]." +msgstr "" + +#: plugins/DetAncestralReport.py:237 plugins/DetDescendantReport.py:248 msgid "Notes for %s" msgstr "" -#: plugins/DetAncestralReport.py:176 +#: plugins/DetAncestralReport.py:274 plugins/DetDescendantReport.py:285 msgid " was born on %s in %s." msgstr "" -#: plugins/DetAncestralReport.py:178 +#: plugins/DetAncestralReport.py:276 plugins/DetDescendantReport.py:287 msgid " was born on %s." msgstr "" -#: plugins/DetAncestralReport.py:180 +#: plugins/DetAncestralReport.py:278 plugins/DetDescendantReport.py:289 msgid " was born in the year %s in %s." msgstr "" -#: plugins/DetAncestralReport.py:183 +#: plugins/DetAncestralReport.py:281 plugins/DetDescendantReport.py:292 msgid " was born in the year %s." msgstr "" -#: plugins/DetAncestralReport.py:185 +#: plugins/DetAncestralReport.py:283 plugins/DetDescendantReport.py:294 msgid " in %s." msgstr "" -#: plugins/DetAncestralReport.py:187 plugins/DetAncestralReport.py:190 +#: plugins/DetAncestralReport.py:285 plugins/DetAncestralReport.py:288 +#: plugins/DetDescendantReport.py:296 plugins/DetDescendantReport.py:299 msgid "." msgstr "" -#: plugins/DetAncestralReport.py:220 +#: plugins/DetAncestralReport.py:339 plugins/DetDescendantReport.py:350 msgid " %s died on %s in %s" msgstr "" -#: plugins/DetAncestralReport.py:221 +#: plugins/DetAncestralReport.py:340 plugins/DetDescendantReport.py:351 msgid " %s died on %s" msgstr "" -#: plugins/DetAncestralReport.py:224 +#: plugins/DetAncestralReport.py:343 plugins/DetDescendantReport.py:354 msgid " %s died in %s in %s" msgstr "" -#: plugins/DetAncestralReport.py:225 plugins/DetAncestralReport.py:227 +#: plugins/DetAncestralReport.py:344 plugins/DetAncestralReport.py:346 +#: plugins/DetDescendantReport.py:355 plugins/DetDescendantReport.py:357 msgid " %s died in %s" msgstr "" -#: plugins/DetAncestralReport.py:256 +#: plugins/DetAncestralReport.py:374 plugins/DetDescendantReport.py:385 msgid " And %s was buried on %s in %s." msgstr "" -#: plugins/DetAncestralReport.py:258 +#: plugins/DetAncestralReport.py:376 plugins/DetDescendantReport.py:387 msgid " And %s was buried on %s." msgstr "" -#: plugins/DetAncestralReport.py:260 +#: plugins/DetAncestralReport.py:378 plugins/DetDescendantReport.py:389 msgid " And %s was buried in %s." msgstr "" -#: plugins/DetAncestralReport.py:280 +#: plugins/DetAncestralReport.py:408 plugins/DetDescendantReport.py:419 msgid " %s was the son of %s and %s." msgstr "" -#: plugins/DetAncestralReport.py:283 plugins/DetAncestralReport.py:286 +#: plugins/DetAncestralReport.py:411 plugins/DetAncestralReport.py:414 +#: plugins/DetDescendantReport.py:422 plugins/DetDescendantReport.py:425 msgid " %s was the son of %s." msgstr "" -#: plugins/DetAncestralReport.py:291 +#: plugins/DetAncestralReport.py:419 plugins/DetDescendantReport.py:430 msgid " %s was the daughter of %s and %s." msgstr "" -#: plugins/DetAncestralReport.py:294 plugins/DetAncestralReport.py:297 +#: plugins/DetAncestralReport.py:422 plugins/DetAncestralReport.py:425 +#: plugins/DetDescendantReport.py:433 plugins/DetDescendantReport.py:436 msgid " %s was the daughter of %s." msgstr "" -#: plugins/DetAncestralReport.py:337 -msgid " %s married %s." +#: plugins/DetAncestralReport.py:448 plugins/DetAncestralReport.py:454 +#: plugins/DetDescendantReport.py:459 plugins/DetDescendantReport.py:465 +msgid "," msgstr "" -#: plugins/DetAncestralReport.py:339 -msgid " %s married %s in %s." +#: plugins/DetAncestralReport.py:449 plugins/DetDescendantReport.py:460 +msgid "and he" msgstr "" -#: plugins/DetAncestralReport.py:341 -msgid " %s married %s on %s." +#: plugins/DetAncestralReport.py:455 plugins/DetDescendantReport.py:466 +msgid "and she" msgstr "" -#: plugins/DetAncestralReport.py:342 -msgid " %s married %s on %s in %s." +#: plugins/DetAncestralReport.py:481 plugins/DetDescendantReport.py:492 +msgid " %s married %s" msgstr "" -#: plugins/DetAncestralReport.py:346 -msgid " %s married." +#: plugins/DetAncestralReport.py:483 plugins/DetDescendantReport.py:494 +msgid " %s married %s in %s" msgstr "" -#: plugins/DetAncestralReport.py:348 -msgid " %s married in %s." +#: plugins/DetAncestralReport.py:485 plugins/DetDescendantReport.py:496 +msgid " %s married %s on %s" msgstr "" -#: plugins/DetAncestralReport.py:350 -msgid " %s married on %s." +#: plugins/DetAncestralReport.py:486 plugins/DetDescendantReport.py:497 +msgid " %s married %s on %s in %s" msgstr "" -#: plugins/DetAncestralReport.py:351 -msgid " %s married on %s in %s." +#: plugins/DetAncestralReport.py:490 plugins/DetDescendantReport.py:501 +msgid " %s married" msgstr "" -#: plugins/DetAncestralReport.py:407 plugins/DetAncestralReport.py:457 +#: plugins/DetAncestralReport.py:492 plugins/DetDescendantReport.py:503 +msgid " %s married in %s" +msgstr "" + +#: plugins/DetAncestralReport.py:494 plugins/DetDescendantReport.py:505 +msgid " %s married on %s" +msgstr "" + +#: plugins/DetAncestralReport.py:495 plugins/DetDescendantReport.py:506 +msgid " %s married on %s in %s" +msgstr "" + +#: plugins/DetAncestralReport.py:609 plugins/DetAncestralReport.py:666 msgid "Detailed Ancestral Report for %s" msgstr "" -#: plugins/DetAncestralReport.py:453 +#: plugins/DetAncestralReport.py:662 plugins/DetDescendantReport.py:690 msgid "Gramps - Ahnentafel Report" msgstr "" -#: plugins/DetAncestralReport.py:633 +#: plugins/DetAncestralReport.py:821 msgid "Detailed Ancestral Report" msgstr "" -#: plugins/DetAncestralReport.py:636 +#: plugins/DetAncestralReport.py:824 msgid "Produces a detailed ancestral report" msgstr "" -#: plugins/DetAncestralReport.py:739 +#: plugins/DetAncestralReport.py:930 plugins/DetDescendantReport.py:999 msgid " at the age of %d %s" msgstr "" -#: plugins/EventCmp.py:132 plugins/GraphViz.py:82 plugins/IndivComplete.py:484 -#: plugins/WebPage.py:786 plugins/WriteGedcom.py:314 -#: plugins/WriteGedcomXML.py:420 plugins/WritePafPalm.py:561 +#: plugins/DetDescendantReport.py:694 +msgid "Detailed Descendant Report for %s" +msgstr "" + +#: plugins/DetDescendantReport.py:775 +msgid "Use first names instead of pronouns" +msgstr "" + +#: plugins/DetDescendantReport.py:779 +msgid "Use full dates instead of only the year" +msgstr "" + +#: plugins/DetDescendantReport.py:783 +msgid "List children" +msgstr "" + +#: plugins/DetDescendantReport.py:894 +msgid "Detailed Descendant Report" +msgstr "" + +#: plugins/DetDescendantReport.py:897 +msgid "Produces a detailed descendant report" +msgstr "" + +#: plugins/EventCmp.py:131 plugins/GraphViz.py:85 plugins/IndivComplete.py:484 +#: plugins/WebPage.py:909 plugins/WriteGedcom.py:328 +#: plugins/WritePafPalm.py:561 msgid "Entire Database" msgstr "" -#: plugins/EventCmp.py:145 +#: plugins/EventCmp.py:144 msgid "No matches were found" msgstr "" -#: plugins/EventCmp.py:333 +#: plugins/EventCmp.py:331 msgid "Compare individual events" msgstr "" -#: plugins/EventCmp.py:335 +#: plugins/EventCmp.py:333 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" msgstr "" -#: plugins/FamilyGroup.py:109 plugins/FamilyGroup.py:338 -#: plugins/FamilyGroup.py:548 +#: plugins/FamilyGroup.py:107 plugins/FamilyGroup.py:336 +#: plugins/FamilyGroup.py:546 msgid "Family Group Report" msgstr "" -#: plugins/FamilyGroup.py:118 +#: plugins/FamilyGroup.py:116 msgid "Husband" msgstr "" -#: plugins/FamilyGroup.py:120 +#: plugins/FamilyGroup.py:118 msgid "Wife" msgstr "" -#: plugins/FamilyGroup.py:342 +#: plugins/FamilyGroup.py:340 msgid "Family Group Report for %s" msgstr "" -#: plugins/FamilyGroup.py:347 +#: plugins/FamilyGroup.py:345 msgid "Save Family Group Report" msgstr "" -#: plugins/FamilyGroup.py:369 -msgid "No known marriages" -msgstr "" - -#: plugins/FamilyGroup.py:551 +#: plugins/FamilyGroup.py:549 msgid "Creates a family group report, showing information on a set of parents and their children." msgstr "" @@ -3496,7 +3613,7 @@ msgid "Custom Filter Editor" msgstr "" #: plugins/FilterEditor.py:381 plugins/FilterEditor.py:394 -#: plugins/RelCalc.py:437 plugins/Verify.py:292 plugins/soundgen.py:91 +#: plugins/RelCalc.py:437 plugins/Verify.py:306 plugins/soundgen.py:91 msgid "Utilities" msgstr "" @@ -3516,119 +3633,118 @@ msgstr "" msgid "Quit" msgstr "" -#: plugins/GraphViz.py:39 plugins/GraphViz.py:70 +#: plugins/GraphViz.py:42 plugins/GraphViz.py:73 msgid "Single (scaled)" msgstr "" -#: plugins/GraphViz.py:40 +#: plugins/GraphViz.py:43 msgid "Single" msgstr "" -#: plugins/GraphViz.py:41 +#: plugins/GraphViz.py:44 msgid "Multiple" msgstr "" -#: plugins/GraphViz.py:60 plugins/GraphViz.py:389 +#: plugins/GraphViz.py:63 plugins/GraphViz.py:392 msgid "Relationship Graph" msgstr "" -#: plugins/GraphViz.py:66 +#: plugins/GraphViz.py:69 msgid "Graphviz File" msgstr "" -#: plugins/GraphViz.py:90 plugins/IndivComplete.py:480 plugins/WebPage.py:794 -#: plugins/WriteGedcom.py:322 plugins/WriteGedcomXML.py:425 -#: plugins/WritePafPalm.py:566 +#: plugins/GraphViz.py:93 plugins/IndivComplete.py:480 plugins/WebPage.py:921 +#: plugins/WriteGedcom.py:336 plugins/WritePafPalm.py:566 msgid "Ancestors of %s" msgstr "" -#: plugins/GraphViz.py:99 +#: plugins/GraphViz.py:102 msgid "Descendants <- Ancestors" msgstr "" -#: plugins/GraphViz.py:104 +#: plugins/GraphViz.py:107 msgid "Descendants -> Ancestors" msgstr "" -#: plugins/GraphViz.py:109 +#: plugins/GraphViz.py:112 msgid "Descendants <-> Ancestors" msgstr "" -#: plugins/GraphViz.py:114 +#: plugins/GraphViz.py:117 msgid "Descendants - Ancestors" msgstr "" -#: plugins/GraphViz.py:123 plugins/GraphViz.py:131 plugins/GraphViz.py:139 -#: plugins/GraphViz.py:149 plugins/GraphViz.py:159 plugins/GraphViz.py:173 -#: plugins/GraphViz.py:176 plugins/GraphViz.py:186 plugins/GraphViz.py:193 +#: plugins/GraphViz.py:126 plugins/GraphViz.py:134 plugins/GraphViz.py:142 +#: plugins/GraphViz.py:152 plugins/GraphViz.py:162 plugins/GraphViz.py:176 +#: plugins/GraphViz.py:179 plugins/GraphViz.py:189 plugins/GraphViz.py:196 msgid "GraphViz Options" msgstr "" -#: plugins/GraphViz.py:124 +#: plugins/GraphViz.py:127 msgid "Arrowhead Options" msgstr "" -#: plugins/GraphViz.py:126 +#: plugins/GraphViz.py:129 msgid "Choose the direction that the arrows point." msgstr "" -#: plugins/GraphViz.py:128 +#: plugins/GraphViz.py:131 msgid "Include Birth and Death Dates" msgstr "" -#: plugins/GraphViz.py:133 +#: plugins/GraphViz.py:136 msgid "Include the years that the individual was born and/or died in the graph node labels." msgstr "" -#: plugins/GraphViz.py:137 +#: plugins/GraphViz.py:140 msgid "Include URLs" msgstr "" -#: plugins/GraphViz.py:141 +#: plugins/GraphViz.py:144 msgid "Include a URL in each graph node so that PDF and imagemap files can be generated that contain active links to the files generated by the 'Generate Web Site' report." msgstr "" -#: plugins/GraphViz.py:147 +#: plugins/GraphViz.py:150 msgid "Colorize Graph" msgstr "" -#: plugins/GraphViz.py:152 +#: plugins/GraphViz.py:155 msgid "Males will be outlined in blue, females will be outlined in pink. If the sex of an individual is unknown it will be outlined in black." msgstr "" -#: plugins/GraphViz.py:157 +#: plugins/GraphViz.py:160 msgid "Indicate non-birth relationships with dashed lines" msgstr "" -#: plugins/GraphViz.py:162 +#: plugins/GraphViz.py:165 msgid "Non-birth relationships will show up as dashed lines in the graph." msgstr "" -#: plugins/GraphViz.py:174 +#: plugins/GraphViz.py:177 msgid "Top & Bottom Margins" msgstr "" -#: plugins/GraphViz.py:177 +#: plugins/GraphViz.py:180 msgid "Left & Right Margins" msgstr "" -#: plugins/GraphViz.py:187 +#: plugins/GraphViz.py:190 msgid "Number of Horizontal Pages" msgstr "" -#: plugins/GraphViz.py:189 +#: plugins/GraphViz.py:192 msgid "GraphViz can create very large graphs by spreading the graph across a rectangular array of pages. This controls the number pages in the array horizontally." msgstr "" -#: plugins/GraphViz.py:194 +#: plugins/GraphViz.py:197 msgid "Number of Vertical Pages" msgstr "" -#: plugins/GraphViz.py:196 +#: plugins/GraphViz.py:199 msgid "GraphViz can create very large graphs by spreading the graph across a rectangular array of pages. This controls the number pages in the array vertically." msgstr "" -#: plugins/GraphViz.py:374 +#: plugins/GraphViz.py:377 msgid "Generates relationship graphs, currently only in GraphViz format. GraphViz (dot) can transform the graph into postscript, jpeg, png, vrml, svg, and many other formats. For more information or to get a copy of GraphViz, goto http://www.graphviz.org" msgstr "" @@ -3645,7 +3761,7 @@ msgid "Alternate Names" msgstr "" #: plugins/IndivComplete.py:244 plugins/IndivSummary.py:145 -#: plugins/WebPage.py:484 +#: plugins/WebPage.py:500 msgid "Marriages/Children" msgstr "" @@ -3654,17 +3770,17 @@ msgid "Individual Facts" msgstr "" #: plugins/IndivComplete.py:354 plugins/IndivSummary.py:203 -#: plugins/WebPage.py:90 plugins/WebPage.py:213 +#: plugins/WebPage.py:98 plugins/WebPage.py:221 msgid "Summary of %s" msgstr "" #: plugins/IndivComplete.py:384 plugins/IndivSummary.py:243 -#: plugins/WebPage.py:239 +#: plugins/WebPage.py:255 msgid "Male" msgstr "" #: plugins/IndivComplete.py:386 plugins/IndivSummary.py:245 -#: plugins/WebPage.py:241 +#: plugins/WebPage.py:257 msgid "Female" msgstr "" @@ -3705,49 +3821,49 @@ msgstr "" msgid "Medium" msgstr "" -#: plugins/Merge.py:523 +#: plugins/Merge.py:527 msgid "Find possible duplicate people" msgstr "" -#: plugins/Merge.py:525 +#: plugins/Merge.py:529 msgid "Searches the entire database, looking for individual entries that may represent the same person." msgstr "" -#: plugins/PatchNames.py:74 +#: plugins/PatchNames.py:77 msgid "" "%s will be extracted as a nickname from %s\n" msgstr "" -#: plugins/PatchNames.py:78 +#: plugins/PatchNames.py:82 msgid "" "%s will be extracted as a title from %s\n" msgstr "" -#: plugins/PatchNames.py:91 +#: plugins/PatchNames.py:95 msgid "No titles or nicknames were found" msgstr "" -#: plugins/PatchNames.py:119 +#: plugins/PatchNames.py:127 msgid "Extract information from names" msgstr "" -#: plugins/PatchNames.py:121 +#: plugins/PatchNames.py:129 msgid "Searches the entire database and attempts to extract titles and nicknames that may be embedded in a person's given name field." msgstr "" -#: plugins/ReadGedcom.py:265 plugins/ReadGedcom.py:276 +#: plugins/ReadGedcom.py:272 plugins/ReadGedcom.py:283 msgid "Warning: line %d was not understood, so it was ignored." msgstr "" -#: plugins/ReadGedcom.py:305 +#: plugins/ReadGedcom.py:317 msgid "Import Complete: %d seconds" msgstr "" -#: plugins/ReadGedcom.py:1737 plugins/ReadGedcom.py:1763 +#: plugins/ReadGedcom.py:1622 plugins/ReadGedcom.py:1652 msgid "Import from GEDCOM" msgstr "" -#: plugins/ReadNative.py:58 plugins/ReadNative.py:82 +#: plugins/ReadNative.py:57 plugins/ReadNative.py:85 msgid "Import from GRAMPS" msgstr "" @@ -4043,177 +4159,209 @@ msgstr "" msgid "Calculates the relationship between two people" msgstr "" -#: plugins/ReorderIds.py:105 +#: plugins/ReorderIds.py:123 msgid "Reorder gramps IDs" msgstr "" -#: plugins/ReorderIds.py:107 +#: plugins/ReorderIds.py:125 msgid "Reorders the gramps IDs according to gramps' default rules." msgstr "" -#: plugins/Summary.py:92 +#: plugins/Summary.py:106 msgid "Individuals" msgstr "" -#: plugins/Summary.py:94 +#: plugins/Summary.py:108 msgid "Number of individuals" msgstr "" -#: plugins/Summary.py:97 +#: plugins/Summary.py:111 msgid "Individuals with incomplete names" msgstr "" -#: plugins/Summary.py:98 +#: plugins/Summary.py:112 msgid "Individuals missing birth dates" msgstr "" -#: plugins/Summary.py:100 +#: plugins/Summary.py:114 msgid "Family Information" msgstr "" -#: plugins/Summary.py:102 +#: plugins/Summary.py:116 msgid "Number of families" msgstr "" -#: plugins/Summary.py:103 +#: plugins/Summary.py:117 msgid "Unique surnames" msgstr "" -#: plugins/Summary.py:106 +#: plugins/Summary.py:120 msgid "Individuals with media objects" msgstr "" -#: plugins/Summary.py:107 +#: plugins/Summary.py:121 msgid "Total number of media object references" msgstr "" -#: plugins/Summary.py:108 +#: plugins/Summary.py:122 msgid "Number of unique media objects" msgstr "" -#: plugins/Summary.py:109 +#: plugins/Summary.py:123 msgid "Total size of media objects" msgstr "" -#: plugins/Summary.py:110 +#: plugins/Summary.py:124 msgid "bytes" msgstr "" -#: plugins/Summary.py:113 +#: plugins/Summary.py:127 msgid "Missing Media Objects" msgstr "" -#: plugins/Summary.py:132 +#: plugins/Summary.py:146 msgid "Summary of the database" msgstr "" -#: plugins/Summary.py:134 plugins/count_anc.py:88 +#: plugins/Summary.py:148 plugins/count_anc.py:98 msgid "View" msgstr "" -#: plugins/Summary.py:135 +#: plugins/Summary.py:149 msgid "Provides a summary of the current database" msgstr "" -#: plugins/Verify.py:291 +#: plugins/Verify.py:305 msgid "Verify the database" msgstr "" -#: plugins/Verify.py:293 +#: plugins/Verify.py:307 msgid "List exceptions to assertions or checks about the database" msgstr "" -#: plugins/WebPage.py:275 +#: plugins/WebPage.py:252 +msgid "ID Number" +msgstr "" + +#: plugins/WebPage.py:291 msgid "Return to the index of people" msgstr "" -#: plugins/WebPage.py:382 +#: plugins/WebPage.py:398 msgid "Facts and Events" msgstr "" -#: plugins/WebPage.py:570 +#: plugins/WebPage.py:590 msgid "Creating Web Pages" msgstr "" -#: plugins/WebPage.py:570 +#: plugins/WebPage.py:590 msgid "Generate HTML reports - GRAMPS" msgstr "" -#: plugins/WebPage.py:580 plugins/WebPage.py:584 +#: plugins/WebPage.py:679 plugins/WebPage.py:683 msgid "Family Tree Index" msgstr "" -#: plugins/WebPage.py:618 +#: plugins/WebPage.py:717 msgid "%s (continued)" msgstr "" -#: plugins/WebPage.py:635 +#: plugins/WebPage.py:734 msgid "Neither %s nor %s are directories" msgstr "" -#: plugins/WebPage.py:642 plugins/WebPage.py:646 plugins/WebPage.py:658 -#: plugins/WebPage.py:662 +#: plugins/WebPage.py:741 plugins/WebPage.py:745 plugins/WebPage.py:757 +#: plugins/WebPage.py:761 msgid "Could not create the directory : %s" msgstr "" -#: plugins/WebPage.py:723 +#: plugins/WebPage.py:826 msgid "Include a link to the index page" msgstr "" -#: plugins/WebPage.py:724 plugins/gedcomexport.glade:295 +#: plugins/WebPage.py:827 plugins/gedcomexport.glade:295 #: plugins/pafexport.glade:296 msgid "Do not include records marked private" msgstr "" -#: plugins/WebPage.py:725 +#: plugins/WebPage.py:828 msgid "Restrict information on living people" msgstr "" -#: plugins/WebPage.py:726 +#: plugins/WebPage.py:829 msgid "Do not use images" msgstr "" -#: plugins/WebPage.py:727 +#: plugins/WebPage.py:830 msgid "Do not use images for living people" msgstr "" -#: plugins/WebPage.py:728 +#: plugins/WebPage.py:831 msgid "Do not include comments and text in source information" msgstr "" -#: plugins/WebPage.py:729 +#: plugins/WebPage.py:832 +msgid "Include the GRAMPS ID in the report" +msgstr "" + +#: plugins/WebPage.py:833 +msgid "Create a GENDEX index" +msgstr "" + +#: plugins/WebPage.py:834 msgid "Image subdirectory" msgstr "" -#: plugins/WebPage.py:745 -msgid "Privacy Options" +#: plugins/WebPage.py:835 +msgid "File extension" msgstr "" -#: plugins/WebPage.py:761 plugins/WebPage.py:1111 +#: plugins/WebPage.py:859 +msgid "Privacy" +msgstr "" + +#: plugins/WebPage.py:866 +msgid "Advanced" +msgstr "" + +#: plugins/WebPage.py:868 +msgid "GRAMPS ID link URL" +msgstr "" + +#: plugins/WebPage.py:884 plugins/WebPage.py:1246 msgid "Generate Web Site" msgstr "" -#: plugins/WebPage.py:761 plugins/WebPage.py:1112 +#: plugins/WebPage.py:884 plugins/WebPage.py:1247 msgid "Web Page" msgstr "" -#: plugins/WebPage.py:766 +#: plugins/WebPage.py:889 msgid "Target Directory" msgstr "" -#: plugins/WebPage.py:1114 +#: plugins/WebPage.py:913 +msgid "Direct Descendants of %s" +msgstr "" + +#: plugins/WebPage.py:917 +msgid "Descendant Families of %s" +msgstr "" + +#: plugins/WebPage.py:1249 msgid "Generates web (HTML) pages for individuals, or a set of individuals." msgstr "" -#: plugins/WriteGedcom.py:941 plugins/WriteGedcomXML.py:1012 +#: plugins/WriteGedcom.py:951 msgid "Export to GEDCOM" msgstr "" -#: plugins/WriteGedcomXML.py:433 plugins/WritePafPalm.py:574 +#: plugins/WritePafPalm.py:574 msgid "Ancestors and Descendants of %s" msgstr "" -#: plugins/WriteGedcomXML.py:437 plugins/WritePafPalm.py:578 +#: plugins/WritePafPalm.py:578 msgid "People somehow connected to %s" msgstr "" @@ -4221,7 +4369,7 @@ msgstr "" msgid "Export to PAF for PalmOS" msgstr "" -#: plugins/WritePkg.py:134 +#: plugins/WritePkg.py:153 msgid "Export to GRAMPS package" msgstr "" @@ -4233,30 +4381,30 @@ msgstr "" msgid "Change Event Type of" msgstr "" -#: plugins/count_anc.py:44 +#: plugins/count_anc.py:54 msgid "Number of ancestors of \"%s\" by generation" msgstr "" -#: plugins/count_anc.py:54 +#: plugins/count_anc.py:64 msgid "" "Generation %d has 1 individual.\n" msgstr "" -#: plugins/count_anc.py:56 +#: plugins/count_anc.py:66 msgid "" "Generation %d has %d individuals.\n" msgstr "" -#: plugins/count_anc.py:70 +#: plugins/count_anc.py:80 msgid "" "Total ancestors in generations %d to -1 is %d .\n" msgstr "" -#: plugins/count_anc.py:87 +#: plugins/count_anc.py:97 msgid "Number of ancestors" msgstr "" -#: plugins/count_anc.py:89 +#: plugins/count_anc.py:99 msgid "Counts number of ancestors of selected person" msgstr "" @@ -4491,6 +4639,10 @@ msgstr "" msgid "name" msgstr "" +#: plugins/relcalc.glade:183 +msgid "Birthdate" +msgstr "" + #: plugins/soundex.glade:18 msgid "SoundEx Code Generator - GRAMPS" msgstr "" @@ -5013,10 +5165,6 @@ msgstr "" msgid "Comments" msgstr "" -#: srcsel.glade:585 -msgid "Confidence" -msgstr "" - #: srcsel.glade:643 msgid "Source Reference Selection - GRAMPS" msgstr ""