Enable gender-aware translations for Verify.py

svn: r1454
This commit is contained in:
Alex Roitman 2003-04-16 15:46:37 +00:00
parent 4db8be1055
commit 5ac841c344
3 changed files with 930 additions and 612 deletions

View File

@ -20,6 +20,7 @@
#
# Modified by Alex Roitman to enable translation of warnings and errors.
# Modified further to use cStringIO object.
#
"View/Verify"
@ -30,6 +31,7 @@
#
#------------------------------------------------------------------------
import os
import cStringIO
#------------------------------------------------------------------------
#
@ -101,8 +103,8 @@ def on_apply_clicked(obj):
oldunm = 99 # maximum age at death for unmarried person
error = ""
warn = ""
error = cStringIO.StringIO()
warn = cStringIO.StringIO()
for person in personList:
idstr = person.getPrimaryName().getName() + " (" + person.getId() + ")"
@ -114,22 +116,62 @@ def on_apply_clicked(obj):
buryear = 0
if byear>0 and bapyear>0:
if byear > bapyear:
error = error + _("Baptized before birth: %s born %d, baptized %d.\n") % (idstr, byear, bapyear)
if person.getGender() == RelLib.Person.male:
error.write( _("Baptized before birth: %(male_name)s born %(byear)d, baptized %(bapyear)d.\n") % {
'male_name' : idstr, 'byear' : byear, 'bapyear' : bapyear } )
if person.getGender() == RelLib.Person.female:
error.write( _("Baptized before birth: %(female_name)s born %(byear)d, baptized %(bapyear)d.\n") % {
'female_name' : idstr, 'byear' : byear, 'bapyear' : bapyear } )
if byear < bapyear:
warn = warn + _("Baptized late: %s born %d, baptized %d.\n") % (idstr, byear, bapyear)
if person.getGender() == RelLib.Person.male:
warn.write( _("Baptized late: %(male_name)s born %(byear)d, baptized %(bapyear)d.\n") % {
'male_name' : idstr, 'byear' : byear, 'bapyear' : bapyear } )
if person.getGender() == RelLib.Person.female:
warn.write( _("Baptized late: %(female_name)s born %(byear)d, baptized %(bapyear)d.\n") % {
'female_name' : idstr, 'byear' : byear, 'bapyear' : bapyear } )
if dyear>0 and buryear>0:
if dyear > buryear:
error = error + _("Buried before death: %s died %d, buried %d.\n") % (idstr, dyear, buryear)
if person.getGender() == RelLib.Person.male:
error.write( _("Buried before death: %(male_name)s died %(dyear)d, buried %(buryear)d.\n") % {
'male_name' : idstr, 'dyear' : dyear, 'buryear' : buryear } )
if person.getGender() == RelLib.Person.female:
error.write( _("Buried before death: %(female_name)s died %(dyear)d, buried %(buryear)d.\n") % {
'female_name' : idstr, 'dyear' : dyear, 'buryear' : buryear } )
if dyear < buryear:
warn = warn + _("Buried late: %s died %d, buried %d.\n") % (idstr, dyear, buryear)
if person.getGender() == RelLib.Person.male:
warn.write( _("Buried late: %(male_name)s died %(dyear)d, buried %(buryear)d.\n") % {
'male_name' : idstr, 'dyear' : dyear, 'buryear' : buryear } )
if person.getGender() == RelLib.Person.female:
warn.write( _("Buried late: %(female_name)s died %(dyear)d, buried %(buryear)d.\n") % {
'female_name' : idstr, 'dyear' : dyear, 'buryear' : buryear } )
if dyear>0 and (byear>dyear):
error = error + _("Died before birth: %s born %d, died %d.\n") % (idstr, byear, dyear)
if person.getGender() == RelLib.Person.male:
error.write( _("Died before birth: %(male_name)s born %(byear)d, died %(dyear)d.\n") % {
'male_name' : idstr, 'byear' : byear, 'dyear' : dyear } )
if person.getGender() == RelLib.Person.female:
error.write( _("Died before birth: %(female_name)s born %(byear)d, died %(dyear)d.\n") % {
'female_name' : idstr, 'byear' : byear, 'dyear' : dyear } )
if dyear>0 and (bapyear>dyear):
error = error + _("Died before baptism: %s baptized %d, died %d.\n") % (idstr, bapyear, dyear)
if person.getGender() == RelLib.Person.male:
error.write( _("Died before baptism: %(male_name)s baptized %(bapyear)d, died %(dyear)d.\n") % {
'male_name' : idstr, 'bapyear' : bapyear, 'dyear' : dyear } )
if person.getGender() == RelLib.Person.female:
error.write( _("Died before baptism: %(female_name)s baptized %(bapyear)d, died %(dyear)d.\n") % {
'female_name' : idstr, 'bapyear' : bapyear, 'dyear' : dyear } )
if buryear>0 and (byear>buryear):
error = error + _("Buried before birth: %s born %d, buried %d.\n") % (idstr, byear, buryear)
if person.getGender() == RelLib.Person.male:
error.write( _("Buried before birth: %(male_name)s born %(byear)d, buried %(buryear)d.\n") % {
'male_name' : idstr, 'byear' : byear, 'buryear' : buryear } )
if person.getGender() == RelLib.Person.female:
error.write( _("Buried before birth: %(female_name)s born %(byear)d, buried %(buryear)d.\n") % {
'female_name' : idstr, 'byear' : byear, 'buryear' : buryear } )
if buryear>0 and (bapyear>buryear):
error = error + _("Buried before birth: %s baptized %d, buried %d.\n") % (idstr, bapyear, buryear)
if person.getGender() == RelLib.Person.male:
error.write( _("Buried before baptism: %(male_name)s baptized %(bapyear)d, buried %(buryear)d.\n") % {
'male_name' : idstr, 'bapyear' : bapyear, 'buryear' : buryear } )
if person.getGender() == RelLib.Person.female:
error.write( _("Buried before baptism: %(female_name)s baptized %(bapyear)d, buried %(buryear)d.\n") % {
'female_name' : idstr, 'bapyear' : bapyear, 'buryear' : buryear } )
if byear == 0:
byear = bapyear # guess baptism = birth
if dyear == 0:
@ -139,43 +181,60 @@ def on_apply_clicked(obj):
else:
ageatdeath = 0
if ageatdeath > oldage:
warn = warn + _("Old age: %s born %d, died %d, at the age of %d.\n") % (idstr, byear, dyear, ageatdeath)
if person.getGender() == RelLib.Person.male:
warn.write( _("Old age: %(male_name)s born %(byear)d, died %(dyear)d, at the age of %(ageatdeath)d.\n") % {
'male_name' : idstr, 'byear' : byear, 'dyear' : dyear, 'ageatdeath' : ageatdeath } )
if person.getGender() == RelLib.Person.female:
warn.write( _("Old age: %(female_name)s born %(byear)d, died %(dyear)d, at the age of %(ageatdeath)d.\n") % {
'female_name' : idstr, 'byear' : byear, 'dyear' : dyear, 'ageatdeath' : ageatdeath } )
# gender checks
#FIXME
if person.getGender() == RelLib.Person.female:
parstr = _("mother ")
# parstr = _("mother ")
oldpar = oldmom
yngpar = yngmom
waswidstr = _(" was a widow ")
# waswidstr = _(" was a widow ")
if person.getGender() == RelLib.Person.male:
parstr = _("father ")
# parstr = _("father ")
oldpar = olddad
yngpar = yngdad
waswidstr = _(" was a widower ")
# waswidstr = _(" was a widower ")
if (person.getGender() != RelLib.Person.female) and (person.getGender() != RelLib.Person.male):
warn = warn + _("Unknown gender for %s.\n") % idstr
parstr = _("parent ")
warn.write( _("Unknown gender for %s.\n") % idstr )
# parstr = _("parent ")
oldpar = olddad
yngpar = yngdad
waswidstr = _(" was a widow ")
# waswidstr = _(" was a widow ")
if (person.getGender() == RelLib.Person.female) and (person.getGender() == RelLib.Person.male):
error = error + _("Ambigous gender for %s.\n") % idstr
parstr = _("parent ")
error.write( _("Ambigous gender for %s.\n") % idstr )
# parstr = _("parent ")
oldpar = olddad
yngpar = yngdad
waswidstr = _(" was a widow ")
# waswidstr = _(" was a widow ")
# multiple parentage check
if( len(person.getParentList()) > 1 ):
warn = warn + _("Multiple parentage for %s.\n") % idstr
if( len( person.getParentList() ) > 1 ):
warn.write( _("Multiple parentage for %s.\n") % idstr )
# marriage checks
nkids = 0
nfam = len( person.getFamilyList() )
if nfam > wedder:
warn = warn + _("Married often: %s married %d times.\n") % (idstr, nfam)
if person.getGender() == RelLib.Person.male:
warn.write( _("Married often: %(male_name)s married %(nfam)d times.\n") % {
'male_name' : idstr, 'nfam' : nfam } )
if person.getGender() == RelLib.Person.female:
warn.write( _("Married often: %(female_name)s married %(nfam)d times.\n") % {
'male_name' : idstr, 'nfam' : nfam } )
if ageatdeath>oldunm and nfam == 0:
warn = warn + _("Old and unmarried: %s died unmarried, at the age of %d years.\n") % (idstr, ageatdeath)
if person.getGender() == RelLib.Person.male:
warn.write( _("Old and unmarried: %(male_name)s died unmarried, at the age of %(ageatdeath)d years.\n") % {
'male_name' : idstr, 'ageatdeath' : ageatdeath } )
if person.getGender() == RelLib.Person.female:
warn.write( _("Old and unmarried: %(female_name)s died unmarried, at the age of %(ageatdeath)d years.\n") % {
'female_name' : idstr, 'ageatdeath' : ageatdeath } )
first_cbyear = 99999
last_cbyear=0
prev_cbyear=0
@ -188,11 +247,11 @@ def on_apply_clicked(obj):
father = family.getFather()
if mother!=None and father!=None:
if mother.getGender() == father.getGender():
warn = warn + _("Homosexual marriage: %s in family %s.\n") % (idstr, family.getId())
warn.write( _("Homosexual marriage: %s in family %s.\n") % ( idstr, family.getId() ) )
if family.getFather() == person and person.getGender() == RelLib.Person.female:
error = error + _("Female husband: %s in family %s.\n") % (idstr, family.getId())
error.write( _("Female husband: %s in family %s.\n") % ( idstr, family.getId() ) )
if family.getMother() == person and person.getGender() == RelLib.Person.male:
error = error + _("Male wife: %s in family %s.\n") % (idstr, family.getId())
error.write( _("Male wife: %s in family %s.\n") % ( idstr, family.getId() ) )
if family.getFather() == person:
spouse = family.getMother()
else:
@ -200,7 +259,7 @@ def on_apply_clicked(obj):
if spouse != None:
if person.getGender() == RelLib.Person.male and \
person.getPrimaryName().getSurname() == spouse.getPrimaryName().getSurname():
warn = warn + _("Husband and wife with the same surname: %s in family %s, and %s.\n") % ( idstr,family.getId(), spouse.getPrimaryName().getName())
warn.write( _("Husband and wife with the same surname: %s in family %s, and %s.\n") % ( idstr,family.getId(), spouse.getPrimaryName().getName() ) )
sdyear = get_year( spouse.getDeath() )
if sdyear == 0:
sdyear = 0 # burial year
@ -218,16 +277,41 @@ def on_apply_clicked(obj):
if byear > 0:
marage = maryear - byear
if marage < 0:
error = error + _("Married before birth: %s born %d, married %d to %s.\n") % (idstr, byear, maryear, spouse.getPrimaryName().getName())
if person.getGender() == RelLib.Person.male:
error.write( _("Married before birth: %(male_name)s born %(byear)d, married %(maryear)d to %(spouse)s.\n") % {
'male_name' : idstr, 'byear' : byear, 'maryear' : maryear, 'spouse' : spouse.getPrimaryName().getName() } )
if person.getGender() == RelLib.Person.female:
error.write( _("Married before birth: %(female_name)s born %(byear)d, married %(maryear)d to %(spouse)s.\n") % {
'female_name' : idstr, 'byear' : byear, 'maryear' : maryear, 'spouse' : spouse.getPrimaryName().getName() } )
else:
if marage < yngmar:
warn = warn + _("Young marriage: %s married at age %d to %s.\n") % (idstr, marage, spouse.getPrimaryName().getName())
if person.getGender() == RelLib.Person.male:
warn.write( _("Young marriage: %(male_name)s married at age %(marage)d to %(spouse)s.\n") % {
'male_name' : idstr, 'marage' : marage, 'spouse' : spouse.getPrimaryName().getName() } )
if person.getGender() == RelLib.Person.female:
warn.write( _("Young marriage: %(female_name)s married at age %(marage)d to %(spouse)s.\n") % {
'female_name' : idstr, 'marage' : marage, 'spouse' : spouse.getPrimaryName().getName() } )
if marage > oldmar:
warn = warn + _("Old marriage: %s married at age %d to %s.\n") % (idstr, marage, spouse.getPrimaryName().getName())
if person.getGender() == RelLib.Person.male:
warn.write( _("Old marriage: %(male_name)s married at age %(marage)d to %(spouse)s.\n") % {
'male_name' : idstr, 'marage' : marage, 'spouse' : spouse.getPrimaryName().getName() } )
if person.getGender() == RelLib.Person.female:
warn.write( _("Old marriage: %(female_name)s married at age %(marage)d to %(spouse)s.\n") % {
'female_name' : idstr, 'marage' : marage, 'spouse' : spouse.getPrimaryName().getName() } )
if dyear>0 and maryear > dyear:
error = error + _("Married after death: %s died %d, married %d to %s.\n") % (idstr, dyear, maryear, spouse.getPrimaryName().getName())
if person.getGender() == RelLib.Person.male:
error.write( _("Married after death: %(male_name)s died %(dyear)d, married %(maryear)d to %(spouse)s.\n") % {
'male_name' : idstr, 'dyear' : dyear, 'maryear' : maryear, 'spouse' : spouse.getPrimaryName().getName() } )
if person.getGender() == RelLib.Person.female:
error.write( _("Married after death: %(female_name)s died %(dyear)d, married %(maryear)d to %(spouse)s.\n") % {
'female_name' : idstr, 'dyear' : dyear, 'maryear' : maryear, 'spouse' : spouse.getPrimaryName().getName() } )
if prev_cbyear > maryear:
warn = warn + _("Marriage before birth from previous family: %s married %d to %s, previous birth %d.\n") % (idstr, maryear, spouse.getPrimaryName().getName(), prev_cbyear)
if person.getGender() == RelLib.Person.male:
warn.write( _("Marriage before birth from previous family: %(male_name)s married %(maryear)d to %(spouse)s, previous birth %(prev_cbyear)d.\n") % {
'male_name' : idstr, 'maryear' : maryear, 'spouse' : spouse.getPrimaryName().getName(), 'prev_cbyear' : prev_cbyear } )
if person.getGender() == RelLib.Person.female:
warn.write( _("Marriage before birth from previous family: %(female_name)s married %(maryear)d to %(spouse)s, previous birth %(prev_cbyear)d.\n") % {
'female_name' : idstr, 'maryear' : maryear, 'spouse' : spouse.getPrimaryName().getName(), 'prev_cbyear' : prev_cbyear } )
prev_maryear = maryear
else:
maryear = prev_maryear
@ -235,12 +319,18 @@ def on_apply_clicked(obj):
if maryear>0 and prev_sdyear > 0:
wdwyear = maryear-prev_sdyear
if wdwyear > lngwdw:
warn = warn + _("Long widowhood: %s %s %d years before, family %s.\n") % (idstr, waswidstr, wdwyear,family.getId() )
if person.getGender() == RelLib.Person.male:
warn.write( _("Long widowhood: %s was a widower %d years before, family %s.\n") % (idstr, wdwyear, family.getId() ) )
if person.getGender() == RelLib.Person.female:
warn.write( _("Long widowhood: %s was a widow %d years before, family %s.\n") % (idstr, wdwyear, family.getId() ) )
if fnum==nfam and dyear>0 and sdyear>0:
wdwyear = dyear - sdyear
if wdwyear > lngwdw:
warn = warn + _("Long widowhood: %s %s %d years.\n") % (idstr, waswidstr, wdwyear)
if person.getGender() == RelLib.Person.male:
warn.write( _("Long widowhood: %s was a widower %d years.\n") % (idstr, wdwyear) )
if person.getGender() == RelLib.Person.female:
warn.write( _("Long widowhood: %s was a widow %d years.\n") % (idstr, wdwyear) )
nkids = 0
for child in family.getChildList():
@ -253,29 +343,54 @@ def on_apply_clicked(obj):
# parentage checks
if byear>0 and cbyear>0:
bage = cbyear - byear
if bage > oldpar:
warn = warn + _("Old %s: %s at age of %d in family %s had a child %s.\n") % (parstr, idstr, bage, family.getId(), child.getPrimaryName().getName())
if bage > oldpar:
if person.getGender() == RelLib.Person.male:
warn.write( _("Old father: %(male_name)s at age of %(bage)d in family %(fam)s had a child %(child)s.\n") % {
'male_name' : idstr, 'bage' : bage, 'fam' : family.getId(), 'child' : child.getPrimaryName().getName() } )
if person.getGender() == RelLib.Person.female:
warn.write( _("Old mother: %(female_name)s at age of %(bage)d in family %(fam)s had a child %(child)s.\n") % {
'female_name' : idstr, 'bage' : bage, 'fam' : family.getId(), 'child' : child.getPrimaryName().getName() } )
if bage < 0:
error = error + _("Unborn %s: %s born %d, in family %s had a child %s born %d.\n") % (parstr, idstr, byear, family.getId(), child.getPrimaryName().getName(), cbyear)
if person.getGender() == RelLib.Person.male:
error.write( _("Unborn father: %(male_name)s born %(byear)d, in family %(fam)s had a child %(child)s born %(cbyear)d.\n") % {
'male_name' : idstr, 'byear' : byear, 'fam' : family.getId(), 'child' : child.getPrimaryName().getName(), 'cbyear' : cbyear } )
if person.getGender() == RelLib.Person.female:
error.write( _("Unborn mother: %(female_name)s born %(byear)d, in family %(fam)s had a child %(child)s born %(cbyear)d.\n") % {
'female_name' : idstr, 'byear' : byear, 'fam' : family.getId(), 'child' : child.getPrimaryName().getName(), 'cbyear' : cbyear } )
else:
if bage < yngpar:
warn = warn + _("Young %s: %s at the age of %d in family %s had a child %s.\n") % (parstr, idstr, bage, family.getId(), child.getPrimaryName().getName())
if bage < yngpar:
if person.getGender() == RelLib.Person.male:
warn.write( _("Young father: %(male_name)s at the age of %(bage)d in family %(fam)s had a child %(child)s.\n") % {
'male_name' : idstr, 'bage' : bage, 'fam' : family.getId(), 'child' : child.getPrimaryName().getName() } )
if person.getGender() == RelLib.Person.female:
warn.write( _("Young mother: %(female_name)s at the age of %(bage)d in family %(fam)s had a child %(child)s.\n") % {
'female_name' : idstr, 'bage' : bage, 'fam' : family.getId(), 'child' : child.getPrimaryName().getName() } )
if dyear>0 and cbyear>dyear:
if person.getGender() == RelLib.Person.male:
if cbyear-1>dyear:
error = error + _("Dead %s: %s died %d, but in family %s had a child %s born %d.\n") % (parstr, idstr, dyear, family.getId(), child.getPrimaryName().getName(), cbyear)
else:
warn = warn + _("Dead %s: %s died %d, but in family %s had a child %s born %d.\n") % (parstr, idstr, dyear, family.getId(), child.getPrimaryName().getName(), cbyear)
else:
error = error + _("Dead %s: %s died %d, but in family %s had a child %s born %d.\n") % (parstr, idstr, dyear, family.getId(), child.getPrimaryName().getName(), cbyear)
if cbyear-1>dyear:
if person.getGender() == RelLib.Person.male:
error.write( _("Dead father: %(male_name)s died %(dyear)d, but in family %(fam)s had a child %(child)s born %(cbyear)d.\n") % {
'male_name' : idstr, 'dyear' : dyear, 'fam' : family.getId(), 'child' : child.getPrimaryName().getName(), 'cbyear' : cbyear} )
if person.getGender() == RelLib.Person.female:
error.write( _("Dead mother: %(female_name)s died %(dyear)d, but in family %(fam)s had a child %(child)s born %(cbyear)d.\n") % {
'female_name' : idstr, 'dyear' : dyear, 'fam' : family.getId(), 'child' : child.getPrimaryName().getName(), 'cbyear' : cbyear} )
else:
if person.getGender() == RelLib.Person.male:
warn.write( _("Dead father: %(male_name)s died %(dyear)d, but in family %(fam)s had a child %(child)s born %(cbyear)d.\n") % {
'male_name' : idstr, 'dyear' : dyear, 'fam' : family.getId(), 'child' : child.getPrimaryName().getName(), 'cbyear' : cbyear} )
if person.getGender() == RelLib.Person.female:
warn.write( _("Dead mother: %(female_name)s died %(dyear)d, but in family %(fam)s had a child %(child)s born %(cbyear)d.\n") % {
'female_name' : idstr, 'dyear' : dyear, 'fam' : family.getId(), 'child' : child.getPrimaryName().getName(), 'cbyear' : cbyear} )
text = ""
if error != "":
text = _("ERRORS:\n") + error + "\n"
text = _("ERRORS:\n") + error.getvalue() + "\n"
if warn != "":
text = _("WARNINGS:\n") + warn
text = _("WARNINGS:\n") + warn.getvalue()
error.close()
warn.close()
verifyResult = gtk.glade.XML(glade_file,"verify_result")
Utils.set_titles(verifyResult.get_widget('verify_result'),
verifyResult.get_widget('title'),

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GRAMPS VERSION\n"
"POT-Creation-Date: Wed Apr 16 09:05:03 2003\n"
"POT-Creation-Date: Wed Apr 16 10:37:11 2003\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -2171,10 +2171,6 @@ msgstr ""
msgid "SVG (Scalable Vector Graphics)"
msgstr ""
#: docgen/TextBufDoc.py:169
msgid "Text Buffer Preview"
msgstr ""
#: edit_person.glade:33
msgid "Abandon changes and close window"
msgstr ""
@ -3368,9 +3364,8 @@ msgid "Ancestor Chart"
msgstr ""
#: plugins/AncestorChart.py:217 plugins/AncestorChart.py:426
#: plugins/DesGraph.py:308 plugins/DesGraph.py:460 plugins/FullFamily.py:105
#: plugins/FullFamily.py:170 plugins/GraphViz.py:78 plugins/GraphViz.py:448
#: plugins/TimeLine.py:316 plugins/TimeLine.py:457
#: plugins/DesGraph.py:308 plugins/DesGraph.py:460 plugins/GraphViz.py:78
#: plugins/GraphViz.py:448 plugins/TimeLine.py:316 plugins/TimeLine.py:457
msgid "Graphical Reports"
msgstr ""
@ -3383,38 +3378,33 @@ msgid "Save Ancestor Chart"
msgstr ""
#: plugins/AncestorChart.py:238 plugins/DesGraph.py:325
#: plugins/FullFamily.py:126
msgid "Display Format"
msgstr ""
#: plugins/AncestorChart.py:239 plugins/DesGraph.py:326
#: plugins/FullFamily.py:127
msgid "Allows you to customize the data in the boxes in the report"
msgstr ""
#: plugins/AncestorChart.py:248 plugins/AncestorReport.py:262
#: plugins/DesGraph.py:335 plugins/FamilyGroup.py:417
#: plugins/FtmStyleAncestors.py:231 plugins/IndivComplete.py:528
#: plugins/IndivSummary.py:371
#: plugins/IndivComplete.py:528 plugins/IndivSummary.py:371
msgid "The basic style used for the text display."
msgstr ""
#: plugins/AncestorChart.py:427 plugins/AncestorReport.py:389
#: plugins/DescendReport.py:284 plugins/DetAncestralReport.py:972
#: plugins/DetDescendantReport.py:850 plugins/FamilyGroup.py:566
#: plugins/FtmStyleAncestors.py:358 plugins/FullFamily.py:171
#: plugins/GraphViz.py:447 plugins/IndivComplete.py:667
#: plugins/IndivSummary.py:500 plugins/Summary.py:150 plugins/TimeLine.py:456
#: plugins/WebPage.py:1267
msgid "Beta"
msgstr ""
#: plugins/AncestorChart.py:428 plugins/FullFamily.py:172
#: plugins/AncestorChart.py:428
msgid "Produces a graphical ancestral tree graph"
msgstr ""
#: plugins/AncestorReport.py:75 plugins/AncestorReport.py:229
#: plugins/FtmStyleAncestors.py:196
msgid "Ahnentafel Report for %s"
msgstr ""
@ -3492,7 +3482,6 @@ msgid " and was buried in %s."
msgstr ""
#: plugins/AncestorReport.py:225 plugins/AncestorReport.py:387
#: plugins/FtmStyleAncestors.py:192
msgid "Ahnentafel Report"
msgstr ""
@ -3500,25 +3489,22 @@ msgstr ""
#: plugins/DescendReport.py:124 plugins/DescendReport.py:283
#: plugins/DetAncestralReport.py:973 plugins/DetDescendantReport.py:851
#: plugins/FamilyGroup.py:344 plugins/FamilyGroup.py:565
#: plugins/FtmStyleAncestors.py:192 plugins/FtmStyleAncestors.py:357
#: plugins/IndivComplete.py:446 plugins/IndivComplete.py:668
#: plugins/IndivSummary.py:317 plugins/IndivSummary.py:501
msgid "Text Reports"
msgstr ""
#: plugins/AncestorReport.py:234 plugins/DetAncestralReport.py:677
#: plugins/FtmStyleAncestors.py:201
msgid "Save Ancestor Report"
msgstr ""
#: plugins/AncestorReport.py:248 plugins/DescendReport.py:148
#: plugins/FamilyGroup.py:408 plugins/FtmStyleAncestors.py:216
#: plugins/IndivComplete.py:502 plugins/IndivSummary.py:345
#: plugins/TimeLine.py:395 plugins/WebPage.py:960
#: plugins/FamilyGroup.py:408 plugins/IndivComplete.py:502
#: plugins/IndivSummary.py:345 plugins/TimeLine.py:395 plugins/WebPage.py:960
msgid "The style used for the title of the page."
msgstr ""
#: plugins/AncestorReport.py:257 plugins/FtmStyleAncestors.py:226
#: plugins/AncestorReport.py:257
msgid "The style used for the generation header."
msgstr ""
@ -4065,7 +4051,7 @@ msgid "Custom Filter Editor"
msgstr ""
#: plugins/FilterEditor.py:398 plugins/FilterEditor.py:411
#: plugins/RelCalc.py:452 plugins/Verify.py:302 plugins/soundgen.py:95
#: plugins/RelCalc.py:452 plugins/Verify.py:417 plugins/soundgen.py:95
msgid "Utilities"
msgstr ""
@ -4081,60 +4067,6 @@ msgstr ""
msgid "The System Filter Editor builds custom filters that can be used by anyone on the system to select people included in reports, exports, and other utilities."
msgstr ""
#: plugins/FtmStyleAncestors.py:73 plugins/GraphViz.py:107
#: plugins/IndivComplete.py:479 plugins/TimeLine.py:363 plugins/WebPage.py:933
#: plugins/WriteGedcom.py:382
msgid "Ancestors of %s"
msgstr ""
#: plugins/FtmStyleAncestors.py:86
msgid "Generation No. %d"
msgstr ""
#: plugins/FtmStyleAncestors.py:120
msgid "born %(date)s in %(place)s"
msgstr ""
#: plugins/FtmStyleAncestors.py:125
msgid "born on %(date)s"
msgstr ""
#: plugins/FtmStyleAncestors.py:130
msgid "born in %(place)s"
msgstr ""
#: plugins/FtmStyleAncestors.py:150
msgid "died %(date)s in %(place)s. "
msgstr ""
#: plugins/FtmStyleAncestors.py:155
msgid "died on %(date)s. "
msgstr ""
#: plugins/FtmStyleAncestors.py:160
msgid "died in %(place)s. "
msgstr ""
#: plugins/FtmStyleAncestors.py:356
msgid "FTM Style Ancestor Report"
msgstr ""
#: plugins/FtmStyleAncestors.py:359
msgid "Produces a textual ancestral report similar to Family Tree Maker."
msgstr ""
#: plugins/FullFamily.py:105 plugins/FullFamily.py:169
msgid "Full Family Chart"
msgstr ""
#: plugins/FullFamily.py:109
msgid "Full Family Chart for %s"
msgstr ""
#: plugins/FullFamily.py:114
msgid "Save Full Family Chart"
msgstr ""
#: plugins/GraphViz.py:60 plugins/GraphViz.py:87
msgid "Single (scaled)"
msgstr ""
@ -4155,6 +4087,11 @@ msgstr ""
msgid "Graphviz File"
msgstr ""
#: plugins/GraphViz.py:107 plugins/IndivComplete.py:479
#: plugins/TimeLine.py:363 plugins/WebPage.py:933 plugins/WriteGedcom.py:382
msgid "Ancestors of %s"
msgstr ""
#: plugins/GraphViz.py:111 plugins/TimeLine.py:367 plugins/WriteGedcom.py:386
msgid "People with common ancestor with %s"
msgstr ""
@ -4870,190 +4807,280 @@ msgstr ""
msgid "Timeline Graph"
msgstr ""
#: plugins/Verify.py:83 plugins/Verify.py:282
#: plugins/Verify.py:85 plugins/Verify.py:397
msgid "Database Verify"
msgstr ""
#: plugins/Verify.py:117
#: plugins/Verify.py:120
msgid ""
"Baptized before birth: %s born %d, baptized %d.\n"
"Baptized before birth: %(male_name)s born %(byear)d, baptized %(bapyear)d.\n"
msgstr ""
#: plugins/Verify.py:119
#: plugins/Verify.py:123
msgid ""
"Baptized late: %s born %d, baptized %d.\n"
"Baptized before birth: %(female_name)s born %(byear)d, baptized %(bapyear)d.\n"
msgstr ""
#: plugins/Verify.py:122
#: plugins/Verify.py:127
msgid ""
"Buried before death: %s died %d, buried %d.\n"
msgstr ""
#: plugins/Verify.py:124
msgid ""
"Buried late: %s died %d, buried %d.\n"
msgstr ""
#: plugins/Verify.py:126
msgid ""
"Died before birth: %s born %d, died %d.\n"
msgstr ""
#: plugins/Verify.py:128
msgid ""
"Died before baptism: %s baptized %d, died %d.\n"
"Baptized late: %(male_name)s born %(byear)d, baptized %(bapyear)d.\n"
msgstr ""
#: plugins/Verify.py:130
msgid ""
"Buried before birth: %s born %d, buried %d.\n"
"Baptized late: %(female_name)s born %(byear)d, baptized %(bapyear)d.\n"
msgstr ""
#: plugins/Verify.py:132
#: plugins/Verify.py:135
msgid ""
"Buried before birth: %s baptized %d, buried %d.\n"
"Buried before death: %(male_name)s died %(dyear)d, buried %(buryear)d.\n"
msgstr ""
#: plugins/Verify.py:138
msgid ""
"Buried before death: %(female_name)s died %(dyear)d, buried %(buryear)d.\n"
msgstr ""
#: plugins/Verify.py:142
msgid ""
"Old age: %s born %d, died %d, at the age of %d.\n"
"Buried late: %(male_name)s died %(dyear)d, buried %(buryear)d.\n"
msgstr ""
#: plugins/Verify.py:146
msgid "mother "
#: plugins/Verify.py:145
msgid ""
"Buried late: %(female_name)s died %(dyear)d, buried %(buryear)d.\n"
msgstr ""
#: plugins/Verify.py:149 plugins/Verify.py:160 plugins/Verify.py:166
msgid " was a widow "
#: plugins/Verify.py:149
msgid ""
"Died before birth: %(male_name)s born %(byear)d, died %(dyear)d.\n"
msgstr ""
#: plugins/Verify.py:151
msgid "father "
msgstr ""
#: plugins/Verify.py:154
msgid " was a widower "
#: plugins/Verify.py:152
msgid ""
"Died before birth: %(female_name)s born %(byear)d, died %(dyear)d.\n"
msgstr ""
#: plugins/Verify.py:156
msgid ""
"Unknown gender for %s.\n"
"Died before baptism: %(male_name)s baptized %(bapyear)d, died %(dyear)d.\n"
msgstr ""
#: plugins/Verify.py:157 plugins/Verify.py:163
msgid "parent "
msgstr ""
#: plugins/Verify.py:162
#: plugins/Verify.py:159
msgid ""
"Ambigous gender for %s.\n"
"Died before baptism: %(female_name)s baptized %(bapyear)d, died %(dyear)d.\n"
msgstr ""
#: plugins/Verify.py:163
msgid ""
"Buried before birth: %(male_name)s born %(byear)d, buried %(buryear)d.\n"
msgstr ""
#: plugins/Verify.py:166
msgid ""
"Buried before birth: %(female_name)s born %(byear)d, buried %(buryear)d.\n"
msgstr ""
#: plugins/Verify.py:170
msgid ""
"Buried before baptism: %(male_name)s baptized %(bapyear)d, buried %(buryear)d.\n"
msgstr ""
#: plugins/Verify.py:173
msgid ""
"Buried before baptism: %(female_name)s baptized %(bapyear)d, buried %(buryear)d.\n"
msgstr ""
#: plugins/Verify.py:185
msgid ""
"Old age: %(male_name)s born %(byear)d, died %(dyear)d, at the age of %(ageatdeath)d.\n"
msgstr ""
#: plugins/Verify.py:188
msgid ""
"Old age: %(female_name)s born %(byear)d, died %(dyear)d, at the age of %(ageatdeath)d.\n"
msgstr ""
#: plugins/Verify.py:205
msgid ""
"Unknown gender for %s.\n"
msgstr ""
#: plugins/Verify.py:211
msgid ""
"Ambigous gender for %s.\n"
msgstr ""
#: plugins/Verify.py:219
msgid ""
"Multiple parentage for %s.\n"
msgstr ""
#: plugins/Verify.py:176
msgid ""
"Married often: %s married %d times.\n"
msgstr ""
#: plugins/Verify.py:178
msgid ""
"Old and unmarried: %s died unmarried, at the age of %d years.\n"
msgstr ""
#: plugins/Verify.py:191
msgid ""
"Homosexual marriage: %s in family %s.\n"
msgstr ""
#: plugins/Verify.py:193
msgid ""
"Female husband: %s in family %s.\n"
msgstr ""
#: plugins/Verify.py:195
msgid ""
"Male wife: %s in family %s.\n"
msgstr ""
#: plugins/Verify.py:203
msgid ""
"Husband and wife with the same surname: %s in family %s, and %s.\n"
msgstr ""
#: plugins/Verify.py:221
msgid ""
"Married before birth: %s born %d, married %d to %s.\n"
msgstr ""
#: plugins/Verify.py:224
msgid ""
"Young marriage: %s married at age %d to %s.\n"
msgstr ""
#: plugins/Verify.py:226
msgid ""
"Old marriage: %s married at age %d to %s.\n"
"Married often: %(male_name)s married %(nfam)d times.\n"
msgstr ""
#: plugins/Verify.py:228
#: plugins/Verify.py:229
msgid ""
"Married after death: %s died %d, married %d to %s.\n"
"Married often: %(female_name)s married %(nfam)d times.\n"
msgstr ""
#: plugins/Verify.py:230
#: plugins/Verify.py:233
msgid ""
"Marriage before birth from previous family: %s married %d to %s, previous birth %d.\n"
"Old and unmarried: %(male_name)s died unmarried, at the age of %(ageatdeath)d years.\n"
msgstr ""
#: plugins/Verify.py:238
#: plugins/Verify.py:236
msgid ""
"Long widowhood: %s %s %d years before, family %s.\n"
"Old and unmarried: %(female_name)s died unmarried, at the age of %(ageatdeath)d years.\n"
msgstr ""
#: plugins/Verify.py:243
#: plugins/Verify.py:250
msgid ""
"Long widowhood: %s %s %d years.\n"
"Homosexual marriage: %s in family %s.\n"
msgstr ""
#: plugins/Verify.py:257
#: plugins/Verify.py:252
msgid ""
"Old %s: %s at age of %d in family %s had a child %s.\n"
"Female husband: %s in family %s.\n"
msgstr ""
#: plugins/Verify.py:259
#: plugins/Verify.py:254
msgid ""
"Unborn %s: %s born %d, in family %s had a child %s born %d.\n"
"Male wife: %s in family %s.\n"
msgstr ""
#: plugins/Verify.py:262
msgid ""
"Young %s: %s at the age of %d in family %s had a child %s.\n"
"Husband and wife with the same surname: %s in family %s, and %s.\n"
msgstr ""
#: plugins/Verify.py:266 plugins/Verify.py:268 plugins/Verify.py:270
#: plugins/Verify.py:281
msgid ""
"Dead %s: %s died %d, but in family %s had a child %s born %d.\n"
"Married before birth: %(male_name)s born %(byear)d, married %(maryear)d to %(spouse)s.\n"
msgstr ""
#: plugins/Verify.py:275
#: plugins/Verify.py:284
msgid ""
"Married before birth: %(female_name)s born %(byear)d, married %(maryear)d to %(spouse)s.\n"
msgstr ""
#: plugins/Verify.py:289
msgid ""
"Young marriage: %(male_name)s married at age %(marage)d to %(spouse)s.\n"
msgstr ""
#: plugins/Verify.py:292
msgid ""
"Young marriage: %(female_name)s married at age %(marage)d to %(spouse)s.\n"
msgstr ""
#: plugins/Verify.py:296
msgid ""
"Old marriage: %(male_name)s married at age %(marage)d to %(spouse)s.\n"
msgstr ""
#: plugins/Verify.py:299
msgid ""
"Old marriage: %(female_name)s married at age %(marage)d to %(spouse)s.\n"
msgstr ""
#: plugins/Verify.py:303
msgid ""
"Married after death: %(male_name)s died %(dyear)d, married %(maryear)d to %(spouse)s.\n"
msgstr ""
#: plugins/Verify.py:306
msgid ""
"Married after death: %(female_name)s died %(dyear)d, married %(maryear)d to %(spouse)s.\n"
msgstr ""
#: plugins/Verify.py:310
msgid ""
"Marriage before birth from previous family: %(male_name)s married %(maryear)d to %(spouse)s, previous birth %(prev_cbyear)d.\n"
msgstr ""
#: plugins/Verify.py:313
msgid ""
"Marriage before birth from previous family: %(female_name)s married %(maryear)d to %(spouse)s, previous birth %(prev_cbyear)d.\n"
msgstr ""
#: plugins/Verify.py:323
msgid ""
"Long widowhood: %s was a widower %d years before, family %s.\n"
msgstr ""
#: plugins/Verify.py:325
msgid ""
"Long widowhood: %s was a widow %d years before, family %s.\n"
msgstr ""
#: plugins/Verify.py:331
msgid ""
"Long widowhood: %s was a widower %d years.\n"
msgstr ""
#: plugins/Verify.py:333
msgid ""
"Long widowhood: %s was a widow %d years.\n"
msgstr ""
#: plugins/Verify.py:348
msgid ""
"Old father: %(male_name)s at age of %(bage)d in family %(fam)s had a child %(child)s.\n"
msgstr ""
#: plugins/Verify.py:351
msgid ""
"Old mother: %(female_name)s at age of %(bage)d in family %(fam)s had a child %(child)s.\n"
msgstr ""
#: plugins/Verify.py:355
msgid ""
"Unborn father: %(male_name)s born %(byear)d, in family %(fam)s had a child %(child)s born %(cbyear)d.\n"
msgstr ""
#: plugins/Verify.py:358
msgid ""
"Unborn mother: %(female_name)s born %(byear)d, in family %(fam)s had a child %(child)s born %(cbyear)d.\n"
msgstr ""
#: plugins/Verify.py:363
msgid ""
"Young father: %(male_name)s at the age of %(bage)d in family %(fam)s had a child %(child)s.\n"
msgstr ""
#: plugins/Verify.py:366
msgid ""
"Young mother: %(female_name)s at the age of %(bage)d in family %(fam)s had a child %(child)s.\n"
msgstr ""
#: plugins/Verify.py:371 plugins/Verify.py:378
msgid ""
"Dead father: %(male_name)s died %(dyear)d, but in family %(fam)s had a child %(child)s born %(cbyear)d.\n"
msgstr ""
#: plugins/Verify.py:374 plugins/Verify.py:381
msgid ""
"Dead mother: %(female_name)s died %(dyear)d, but in family %(fam)s had a child %(child)s born %(cbyear)d.\n"
msgstr ""
#: plugins/Verify.py:387
msgid ""
"ERRORS:\n"
msgstr ""
#: plugins/Verify.py:277
#: plugins/Verify.py:389
msgid ""
"WARNINGS:\n"
msgstr ""
#: plugins/Verify.py:301
#: plugins/Verify.py:416
msgid "Verify the database"
msgstr ""
#: plugins/Verify.py:303
#: plugins/Verify.py:418
msgid "List exceptions to assertions or checks about the database"
msgstr ""