Merge changes made in gramps20 into HEAD

svn: r4431
This commit is contained in:
Alex Roitman
2005-04-26 16:04:21 +00:00
parent 7549d625e6
commit a7ca0ddf7f
27 changed files with 6302 additions and 8647 deletions

View File

@ -1,3 +1,15 @@
2005-04-26 Alex Roitman <shura@gramps-project.org>
* NEWS, configure.in, src/EditPerson.py, src/EditSource.py,
src/FamilyView.py, src/ImageSelect.py, src/Marriage.py,
src/MergePeople.py, src/ReadGedcom.py, src/Report.py,
src/ReportUtils.py, src/gedcomimport.glade, src/gramps.glade,
src/gramps_main.py, src/rule.glade, src/plugins/ChangeNames.py,
src/plugins/DetAncestralReport.py, src/plugins/DetDescendantReport.py,
src/plugins/ExportVCalendar.py, src/plugins/TestcaseGenerator.py,
src/plugins/changenames.glade, src/plugins/rel_ru.py, src/po/es.po,
src/po/fr.po, src/po/ru.po, src/po/template.po: Merge changes
made in gramps20 into HEAD.
2005-04-26 Martin Hawlisch <Martin.Hawlisch@gmx.de>
* src/PedView.py: Removed navigation buttons in flavour of a menu;

8
NEWS
View File

@ -1,3 +1,11 @@
Version 1.1.99 -- the "What... is your favourite colour?" release
* Bug fixes
* GEDCOM import fixes with parent/child relationships
* Improved signaling interface to keep all displays in sync
* Handle multiple selections in the Source View
* Handle runtime errors from gnomevfs
* translation improvements
Version 1.1.95 -- the "When danger reared its ugly head, he bravely
turned his tail and fled" release
* Explicit format selection in Save As, Open, and Import dialogs.

View File

@ -34,7 +34,7 @@ if test x$ICONV = xno; then
AC_MSG_ERROR(Couldn't find iconv program.)
fi
LANGUAGES="hu zh_CN cs da de es fr it nb nl no pl pt_BR ro ru sv eo"
LANGUAGES="hu zh_CN cs da de es fr it nb nl no pl pt_BR ro ru sv eo fi"
AC_SUBST(LANGUAGES)
DISTLANGS=

View File

@ -1582,7 +1582,8 @@ class EditPerson:
(female,male,unknown) = _select_gender[self.gender.get_active()]
if male and self.person.get_gender() != RelLib.Person.MALE:
self.person.set_gender(RelLib.Person.MALE)
for temp_family in self.person.get_family_handle_list():
for temp_family_handle in self.person.get_family_handle_list():
temp_family = self.db.get_family_from_handle(temp_family_handle)
if self.person == temp_family.get_mother_handle():
if temp_family.get_father_handle() != None:
error = True
@ -1591,7 +1592,8 @@ class EditPerson:
temp_family.set_father_handle(self.person)
elif female and self.person.get_gender() != RelLib.Person.FEMALE:
self.person.set_gender(RelLib.Person.FEMALE)
for temp_family in self.person.get_family_handle_list():
for temp_family_handle in self.person.get_family_handle_list():
temp_family = self.db.get_family_from_handle(temp_family_handle)
if self.person == temp_family.get_father_handle():
if temp_family.get_mother_handle() != None:
error = True
@ -1600,7 +1602,8 @@ class EditPerson:
temp_family.set_mother_handle(self.person)
elif unknown and self.person.get_gender() != RelLib.Person.UNKNOWN:
self.person.set_gender(RelLib.Person.UNKNOWN)
for temp_family in self.person.get_family_handle_list():
for temp_family_handle in self.person.get_family_handle_list():
temp_family = self.db.get_family_from_handle(temp_family_handle)
if self.person == temp_family.get_father_handle():
if temp_family.get_mother_handle() != None:
error = True

View File

@ -277,12 +277,12 @@ class EditSource:
event, None, 0, None, None, self.db.readonly)
elif type == 3:
import EditPlace
family = self.db.get_place_from_handle(handle)
EditPlace.EditPlace(self.parent,family,self.db)
place = self.db.get_place_from_handle(handle)
EditPlace.EditPlace(self.parent,place)
elif type == 5:
import ImageSelect
media = self.db.get_object_from_handle(handle)
ImageSelect.GlobalMediaProperties(self.db,media,self.parent)
ImageSelect.GlobalMediaProperties(self.db,media,self)
def display_references(self):

View File

@ -681,6 +681,8 @@ class FamilyView:
DisplayTrace.DisplayTrace()
def add_spouse(self,obj):
if not self.person:
return
person = RelLib.Person()
if self.person.get_gender() == RelLib.Person.MALE:
person.set_gender(RelLib.Person.FEMALE)
@ -1282,7 +1284,7 @@ class FamilyView:
self.parent_add(self.selected_spouse)
def del_parents_clicked(self,obj):
if len(self.person.get_parent_family_handle_list()) == 0:
if not self.person or len(self.person.get_parent_family_handle_list()) == 0:
return
n = NameDisplay.displayer.display(self.person)
QuestionDialog(_('Remove Parents of %s') % n,
@ -1319,7 +1321,7 @@ class FamilyView:
child = self.parent.db.get_person_from_handle(handle)
self.parent.change_active_person(child)
self.load_family()
else:
elif self.family:
child_list = self.family.get_child_handle_list()
if len(child_list) == 1:
p = self.parent.db.get_person_from_handle(child_list[0])

View File

@ -743,25 +743,16 @@ class LocalMediaProperties:
self.redraw_attr_list()
if parent_window:
self.window.set_transient_for(parent_window)
try:
self.add_itself_to_menu()
except:
pass
self.add_itself_to_menu()
self.window.show()
def on_delete_event(self,obj,b):
self.close_child_windows()
try:
self.remove_itself_from_menu()
except:
pass
self.remove_itself_from_menu()
def close(self,obj):
self.close_child_windows()
try:
self.remove_itself_from_menu()
except:
pass
self.remove_itself_from_menu()
self.window.destroy()
def close_child_windows(self):
@ -891,13 +882,10 @@ class GlobalMediaProperties:
self.dp = DateHandler.parser
self.dd = DateHandler.displayer
if obj:
try:
if self.parent.parent.child_windows.has_key(obj.get_handle()):
self.parent.parent.child_windows[obj.get_handle()].present(None)
return
else:
self.win_key = obj.get_handle()
except:
if self.parent.parent.child_windows.has_key(obj.get_handle()):
self.parent.parent.child_windows[obj.get_handle()].present(None)
return
else:
self.win_key = obj.get_handle()
else:
self.win_key = self
@ -1039,10 +1027,7 @@ class GlobalMediaProperties:
self.display_refs()
if parent_window:
self.window.set_transient_for(parent_window)
try:
self.add_itself_to_menu()
except:
pass
self.add_itself_to_menu()
self.window.show()
def on_delete_event(self,obj,b):
@ -1051,10 +1036,7 @@ class GlobalMediaProperties:
def close(self,obj):
self.close_child_windows()
try:
self.remove_itself_from_menu()
except:
pass
self.remove_itself_from_menu()
self.window.destroy()
def close_child_windows(self):

View File

@ -236,8 +236,11 @@ class Marriage:
lds_ord = self.family.get_lds_sealing()
if lds_ord:
if lds_ord.get_place_handle():
self.lds_place.child.set_text(lds_ord.get_place_handle().get_title())
place_handle = lds_ord.get_place_handle()
if place_handle:
place = self.db.get_place_from_handle( place_handle)
if place:
self.lds_place.child.set_text( place.get_title())
self.lds_date.set_text(lds_ord.get_date())
self.seal_stat = lds_ord.get_status()
self.lds_date_object = lds_ord.get_date_object()

View File

@ -40,7 +40,7 @@ import const
import gtk
import pango
sex = ( _("male"), _("female"), _("unknown"))
sex = ( _("female"), _("male"), _("unknown"))
class Compare:

View File

@ -142,9 +142,9 @@ def importData(database, filename, cb=None, use_trans=True):
line = f.readline().split()
if len(line) == 0:
break
if line[1] == 'CHAR' and line[2] == "ANSEL":
if len(line) > 2 and line[1] == 'CHAR' and line[2] == "ANSEL":
ansel = True
if line[1] == 'SOUR' and line[2] == "GRAMPS":
if len(line) > 2 and line[1] == 'SOUR' and line[2] == "GRAMPS":
gramps = True
f.close()
@ -653,6 +653,10 @@ class GedcomParser:
# noteobj.append(text + self.parse_continue_data(1))
noteobj.append(text + self.parse_note_continue(1))
self.parse_note_data(1)
elif matches[2] == "_LOC":
# TODO: Add support for extended Locations.
# See: http://en.wiki.genealogy.net/index.php/Gedcom_5.5EL
self.ignore_sub_junk(1)
elif matches[0] < 1 or matches[1] == "TRLR":
self.backup()
return
@ -1015,10 +1019,11 @@ class GedcomParser:
self.db.commit_event(event, self.trans)
elif matches[1] == "ADOP":
event = RelLib.Event()
self.db.add_event(event, self.trans)
event.set_name("Adopted")
self.person.add_event_handle(event.get_handle())
self.parse_adopt_event(event,2)
self.db.add_event(event, self.trans)
self.db.commit_event(event, self.trans)
elif matches[1] == "DEAT":
event = RelLib.Event()
self.db.add_event(event, self.trans)
@ -1209,14 +1214,19 @@ class GedcomParser:
self.warn("\n\t\t".join(path))
self.warn('\n')
else:
photo = RelLib.MediaObject()
photo.set_path(path)
photo.set_description(title)
photo.set_mime_type(GrampsMime.get_type(os.path.abspath(path)))
self.db.add_object(photo, self.trans)
photo_handle = self.media_map.get(path)
if photo_handle == None:
photo = RelLib.MediaObject()
photo.set_path(path)
photo.set_description(title)
photo.set_mime_type(GrampsMime.get_type(os.path.abspath(path)))
self.db.add_object(photo, self.trans)
self.media_map[path] = photo.get_handle()
else:
photo = self.db.get_object_from_handle(photo_handle)
oref = RelLib.MediaRef()
oref.set_reference_handle(photo.get_handle())
self.family.add_media_reference(photo)
self.family.add_media_reference(oref)
self.db.commit_family(self.family, self.trans)
def parse_residence(self,address,level):
@ -1275,6 +1285,8 @@ class GedcomParser:
address.set_postal_code(matches[2])
elif matches[1] == "CTRY":
address.set_country(matches[2])
elif matches[1] == "_LOC":
pass # ignore unsupported extended location syntax
else:
self.barf(level+1)
@ -1368,6 +1380,14 @@ class GedcomParser:
event.set_description("%s%s" % (d, matches[2]))
elif matches[1] == "CONT":
event.set_description("%s\n%s" % (event.get_description(),matches[2]))
elif matches[1] in ["_GODP", "_WITN", "_WTN"]:
if matches[2][0] == "@":
witness_handle = self.find_person_handle(self.map_gid(matches[2][1:-1]))
witness = RelLib.Witness(RelLib.Event.ID,witness_handle)
else:
witness = RelLib.Witness(RelLib.Event.NAME,matches[2])
event.add_witness(witness)
self.ignore_sub_junk(level+1)
elif matches[1] in ["RELI", "TIME","ADDR","AGE","AGNC","STAT","TEMP","OBJE","_DATE2"]:
self.ignore_sub_junk(level+1)
else:
@ -1532,6 +1552,14 @@ class GedcomParser:
note = note + "\n" + matches[2]
elif matches[1] == "NOTE":
note = self.parse_note(matches,event,level+1,note)
elif matches[1] in ["_WITN", "_WTN"]:
if matches[2][0] == "@":
witness_handle = self.find_person_handle(self.map_gid(matches[2][1:-1]))
witness = RelLib.Witness(RelLib.Event.ID,witness_handle)
else:
witness = RelLib.Witness(RelLib.Event.NAME,matches[2])
event.add_witness(witness)
self.ignore_sub_junk(level+1)
else:
self.barf(level+1)

View File

@ -169,6 +169,8 @@ class GrampsStyleComboBox(gtk.ComboBox):
if active < 0:
return None
key = self.store[active][0]
if key == _('default'):
key = "default"
return (key,self.style_map[key])
#-------------------------------------------------------------------------

View File

@ -1185,7 +1185,7 @@ def died_str(database,person,person_name=None,empty_date="",empty_place="",
text = _("%(male_name)s died on %(death_date)s.") % {
'male_name' : person_name, 'death_date' : ddate }
elif age_units == 1: #male, date, no place, years
text = _("%(male_name)s died on %(death_date)s"
text = _("%(male_name)s died on %(death_date)s "
"at the age of %(age)d years.") % {
'male_name' : person_name,
'death_date' : ddate, 'age' : age }
@ -1464,25 +1464,25 @@ def buried_str(database,person,person_name=None,empty_date="",empty_place=""):
if bdate and bdate_full:
if bplace: #male, date, place
text = _("%(male_name)s "
"was buried on %(birth_date)s in %(birth_place)s.") % {
"was buried on %(burial_date)s in %(burial_place)s.") % {
'male_name' : person_name,
'birth_date' : bdate, 'birth_place' : bplace }
'burial_date' : bdate, 'burial_place' : bplace }
else: #male, date, no place
text = _("%(male_name)s was buried on %(birth_date)s.") % {
'male_name' : person_name, 'birth_date' : bdate }
text = _("%(male_name)s was buried on %(burial_date)s.") % {
'male_name' : person_name, 'burial_date' : bdate }
elif bdate:
if bplace: #male, month_year, place
text = _("%(male_name)s "
"was buried in %(month_year)s in %(birth_place)s.") % {
"was buried in %(month_year)s in %(burial_place)s.") % {
'male_name' : person_name,
'month_year' : bdate, 'birth_place' : bplace }
'month_year' : bdate, 'burial_place' : bplace }
else: #male, month_year, no place
text = _("%(male_name)s was buried in %(month_year)s.") % {
'male_name' : person_name, 'month_year' : bdate }
else:
if bplace: #male, no date, place
text = _("%(male_name)s was buried in %(birth_place)s.") % {
'male_name' : person_name, 'birth_place' : bplace }
text = _("%(male_name)s was buried in %(burial_place)s.") % {
'male_name' : person_name, 'burial_place' : bplace }
else: #male, no date, no place
text = _("%(male_name)s was buried.") % {
'male_name' : person_name }
@ -1490,25 +1490,25 @@ def buried_str(database,person,person_name=None,empty_date="",empty_place=""):
if bdate and bdate_full:
if bplace: #female, date, place
text = _("%(female_name)s "
"was buried on %(birth_date)s in %(birth_place)s.") % {
"was buried on %(burial_date)s in %(burial_place)s.") % {
'female_name' : person_name,
'birth_date' : bdate, 'birth_place' : bplace }
'burial_date' : bdate, 'burial_place' : bplace }
else: #female, date, no place
text = _("%(female_name)s was buried on %(birth_date)s.") % {
'female_name' : person_name, 'birth_date' : bdate }
text = _("%(female_name)s was buried on %(burial_date)s.") % {
'female_name' : person_name, 'burial_date' : bdate }
elif bdate:
if bplace: #female, month_year, place
text = _("%(female_name)s "
"was buried in %(month_year)s in %(birth_place)s.") % {
"was buried in %(month_year)s in %(burial_place)s.") % {
'female_name' : person_name,
'month_year' : bdate, 'birth_place' : bplace }
'month_year' : bdate, 'burial_place' : bplace }
else: #female, month_year, no place
text = _("%(female_name)s was buried in %(month_year)s.") % {
'female_name' : person_name, 'month_year' : bdate }
else:
if bplace: #female, no date, place
text = _("%(female_name)s was buried in %(birth_place)s.") % {
'female_name' : person_name, 'birth_place' : bplace }
text = _("%(female_name)s was buried in %(burial_place)s.") % {
'female_name' : person_name, 'burial_place' : bplace }
else: #female, no date, no place
text = _("%(female_name)s was buried.") % {
'female_name' : person_name }
@ -1585,7 +1585,7 @@ def list_person_str(database,person,person_name=None,empty_date="",empty_place="
'male_name' : person_name,
'birth_date' : bdate, 'death_place' : dplace }
else:
text = _("%(male_name)s Born: %(birth_date)s ") % {
text = _("%(male_name)s Born: %(birth_date)s.") % {
'male_name' : person_name, 'birth_date' : bdate }
else:
if bplace:
@ -1684,7 +1684,7 @@ def list_person_str(database,person,person_name=None,empty_date="",empty_place="
'female_name' : person_name,
'birth_date' : bdate, 'death_place' : dplace }
else:
text = _("%(female_name)s Born: %(birth_date)s ") % {
text = _("%(female_name)s Born: %(birth_date)s.") % {
'female_name' : person_name, 'birth_date' : bdate }
else:
if bplace:

View File

@ -7,7 +7,7 @@
<property name="visible">True</property>
<property name="title" translatable="yes"></property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="window_position">GTK_WIN_POS_CENTER</property>
<property name="modal">True</property>
<property name="default_width">600</property>
<property name="default_height">500</property>

View File

@ -57,7 +57,7 @@
<accelerator key="N" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2553">
<widget class="GtkImage" id="image2573">
<property name="visible">True</property>
<property name="stock">gtk-new</property>
<property name="icon_size">1</property>
@ -79,7 +79,7 @@
<accelerator key="O" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2554">
<widget class="GtkImage" id="image2574">
<property name="visible">True</property>
<property name="stock">gtk-open</property>
<property name="icon_size">1</property>
@ -116,7 +116,7 @@
<accelerator key="I" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2555">
<widget class="GtkImage" id="image2575">
<property name="visible">True</property>
<property name="stock">gtk-convert</property>
<property name="icon_size">1</property>
@ -138,7 +138,7 @@
<accelerator key="S" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2556">
<widget class="GtkImage" id="image2576">
<property name="visible">True</property>
<property name="stock">gtk-save-as</property>
<property name="icon_size">1</property>
@ -160,7 +160,7 @@
<accelerator key="E" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2557">
<widget class="GtkImage" id="image2577">
<property name="visible">True</property>
<property name="stock">gtk-save-as</property>
<property name="icon_size">1</property>
@ -197,7 +197,7 @@
<accelerator key="Q" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2558">
<widget class="GtkImage" id="image2578">
<property name="visible">True</property>
<property name="stock">gtk-quit</property>
<property name="icon_size">1</property>
@ -232,7 +232,7 @@
<accelerator key="z" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2559">
<widget class="GtkImage" id="image2579">
<property name="visible">True</property>
<property name="stock">gtk-undo</property>
<property name="icon_size">1</property>
@ -245,28 +245,6 @@
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="redolabel">
<property name="visible">True</property>
<property name="label" translatable="yes">_Redo</property>
<property name="use_underline">True</property>
<signal name="activate" handler="on_redo_activate" last_modification_time="Tue, 18 May 2004 14:34:56 GMT"/>
<accelerator key="z" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2560">
<property name="visible">True</property>
<property name="stock">gtk-redo</property>
<property name="icon_size">1</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkSeparatorMenuItem" id="separator12">
<property name="visible">True</property>
@ -283,7 +261,7 @@
<accelerator key="Insert" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2561">
<widget class="GtkImage" id="image2580">
<property name="visible">True</property>
<property name="stock">gtk-add</property>
<property name="icon_size">1</property>
@ -306,7 +284,7 @@
<accelerator key="Delete" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2562">
<widget class="GtkImage" id="image2581">
<property name="visible">True</property>
<property name="stock">gtk-remove</property>
<property name="icon_size">1</property>
@ -344,7 +322,7 @@
<accelerator key="M" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2563">
<widget class="GtkImage" id="image2582">
<property name="visible">True</property>
<property name="stock">gtk-convert</property>
<property name="icon_size">1</property>
@ -380,7 +358,7 @@
<signal name="activate" handler="on_preferences1_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2564">
<widget class="GtkImage" id="image2583">
<property name="visible">True</property>
<property name="stock">gtk-preferences</property>
<property name="icon_size">1</property>
@ -401,7 +379,7 @@
<signal name="activate" handler="on_column_order_activate" last_modification_time="Wed, 10 Mar 2004 04:36:07 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image2565">
<widget class="GtkImage" id="image2584">
<property name="visible">True</property>
<property name="stock">gtk-properties</property>
<property name="icon_size">1</property>
@ -422,7 +400,7 @@
<signal name="activate" handler="on_default_person_activate" last_modification_time="Sat, 16 Aug 2003 01:58:26 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image2566">
<widget class="GtkImage" id="image2585">
<property name="visible">True</property>
<property name="stock">gtk-home</property>
<property name="icon_size">1</property>
@ -508,7 +486,7 @@
<accelerator key="D" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2567">
<widget class="GtkImage" id="image2586">
<property name="visible">True</property>
<property name="stock">gtk-index</property>
<property name="icon_size">1</property>
@ -530,7 +508,7 @@
<accelerator key="B" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2568">
<widget class="GtkImage" id="image2587">
<property name="visible">True</property>
<property name="stock">gnome-stock-book-open</property>
<property name="icon_size">1</property>
@ -603,7 +581,7 @@
<accelerator key="F1" modifiers="0" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2569">
<widget class="GtkImage" id="image2588">
<property name="visible">True</property>
<property name="stock">gtk-help</property>
<property name="icon_size">1</property>
@ -624,7 +602,7 @@
<signal name="activate" handler="on_faq_activate" last_modification_time="Wed, 26 Nov 2003 17:59:23 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image2570">
<widget class="GtkImage" id="image2589">
<property name="visible">True</property>
<property name="stock">gnome-stock-book-open</property>
<property name="icon_size">1</property>
@ -651,7 +629,7 @@
<signal name="activate" handler="on_gramps_home_page_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2571">
<widget class="GtkImage" id="image2590">
<property name="visible">True</property>
<property name="stock">gtk-jump-to</property>
<property name="icon_size">1</property>
@ -672,7 +650,7 @@
<signal name="activate" handler="on_gramps_mailing_lists_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image2572">
<widget class="GtkImage" id="image2591">
<property name="visible">True</property>
<property name="stock">gnome-stock-mail</property>
<property name="icon_size">1</property>
@ -726,7 +704,7 @@
<signal name="activate" handler="on_about_activate" last_modification_time="Tue, 01 Apr 2003 03:44:24 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image2573">
<widget class="GtkImage" id="image2592">
<property name="visible">True</property>
<property name="stock">gnome-stock-about</property>
<property name="icon_size">1</property>
@ -4601,13 +4579,7 @@ Other</property>
<child>
<widget class="GtkComboBox" id="prel_combo">
<property name="visible">True</property>
<property name="items" translatable="yes">Married
Unmarried
Civil Union
Unknown
Other</property>
<property name="add_tearoffs">False</property>
<property name="focus_on_click">True</property>
<property name="items" translatable="yes">Married</property>
<signal name="changed" handler="on_prel_changed" last_modification_time="Fri, 30 Jul 2004 15:32:53 GMT"/>
</widget>
<packing>

View File

@ -305,7 +305,7 @@ class Gramps(GrampsDBCallback.GrampsDBCallback):
self.spouse_combo= self.gtop.get_widget("spouse_combo")
self.spouse_tab = self.gtop.get_widget("spouse_tab")
self.undolabel = self.gtop.get_widget('undolabel')
self.redolabel = self.gtop.get_widget('redolabel')
#self.redolabel = self.gtop.get_widget('redolabel')
self.open_recent = self.gtop.get_widget('open_recent1')
self.child_model = gtk.ListStore(
@ -493,13 +493,14 @@ class Gramps(GrampsDBCallback.GrampsDBCallback):
label.set_use_underline(1)
def redo_callback(self,text):
self.redolabel.set_sensitive(bool(text))
label = self.redolabel.get_children()[0]
if text:
label.set_text(text)
else:
label.set_text(_("_Redo"))
label.set_use_underline(1)
return
#self.redolabel.set_sensitive(bool(text))
#label = self.redolabel.get_children()[0]
#if text:
# label.set_text(text)
#else:
# label.set_text(_("_Redo"))
#label.set_use_underline(1)
def undo(self,*args):
"""
@ -1746,7 +1747,7 @@ class Gramps(GrampsDBCallback.GrampsDBCallback):
self.goto_active_person()
else:
ErrorDialog(_("No Home Person has been set."),
_("The Home Person may be set from the Settings menu."))
_("The Home Person may be set from the Edit menu."))
def on_add_bookmark_activate(self,obj):
if self.active_person:

View File

@ -88,7 +88,7 @@ class ChangeNames:
self.display()
else:
OkDialog(_('No modifications made'),
_("No capitalization changes where detected."))
_("No capitalization changes were detected."))
def display(self):

View File

@ -240,7 +240,7 @@ class DetAncestorReport(Report.Report):
if person.get_note() != "" and self.includeNotes:
self.doc.start_paragraph("DAR-NoteHeader")
self.doc.start_bold()
self.doc.write_text(_("Notes for %(name)s" % { 'name': name } ))
self.doc.write_text(_("Notes for %s") % name)
self.doc.end_bold()
self.doc.end_paragraph()
self.doc.write_note(person.get_note(),person.get_note_format(),"DAR-Entry")
@ -548,11 +548,11 @@ class DetAncestorOptions(ReportOptions.ReportOptions):
self.include_notes_option.set_active(self.options_dict['incnotes'])
# Replace missing Place with ___________
self.place_option = gtk.CheckButton(_("Replace Place with ______"))
self.place_option = gtk.CheckButton(_("Replace missing places with ______"))
self.place_option.set_active(self.options_dict['repplace'])
# Replace missing dates with __________
self.date_option = gtk.CheckButton(_("Replace Dates with ______"))
self.date_option = gtk.CheckButton(_("Replace missing dates with ______"))
self.date_option.set_active(self.options_dict['repdate'])
# Add "Died at the age of NN" in text

View File

@ -261,7 +261,7 @@ class DetDescendantReport(Report.Report):
if person.get_note() and self.includeNotes:
self.doc.start_paragraph("DDR-NoteHeader")
self.doc.start_bold()
self.doc.write_text(_("Notes for %s" % name))
self.doc.write_text(_("Notes for %s") % name)
self.doc.end_bold()
self.doc.end_paragraph()
self.doc.write_note(person.get_note(),person.get_note_format(),"DDR-Entry")
@ -569,11 +569,11 @@ class DetDescendantOptions(ReportOptions.ReportOptions):
self.include_notes_option.set_active(self.options_dict['incnotes'])
# Replace missing Place with ___________
self.place_option = gtk.CheckButton(_("Replace Place with ______"))
self.place_option = gtk.CheckButton(_("Replace missing places with ______"))
self.place_option.set_active(self.options_dict['repplace'])
# Replace missing dates with __________
self.date_option = gtk.CheckButton(_("Replace Dates with ______"))
self.date_option = gtk.CheckButton(_("Replace missing dates with ______"))
self.date_option.set_active(self.options_dict['repdate'])
# Add "Died at the age of NN" in text

View File

@ -27,9 +27,6 @@
#
#-------------------------------------------------------------------------
import os
import string
import time
import re
#-------------------------------------------------------------------------
#
@ -199,11 +196,12 @@ class CalendarWriter:
if event.get_name() == "Marriage":
m_date = event.get_date_object()
place_handle = event.get_place_handle()
text = _("Marriage of %s") % Utlis.family_name(family)
if place_handle:
place = self.db.get_place_from_handle(place_handle)
self.write_vevent("Marriage of x and y", m_date, place.get_title())
self.write_vevent( text, m_date, place.get_title())
else:
self.write_vevent("Marriage of x and y", m_date)
self.write_vevent( text, m_date)
def write_person(self, person_handle):
person = self.db.get_person_from_handle(person_handle)
@ -216,9 +214,9 @@ class CalendarWriter:
place_handle = birth.get_place_handle()
if place_handle:
place = self.db.get_place_from_handle(place_handle)
self.write_vevent("Birth of %s" % person.get_primary_name().get_name(), b_date, place.get_title())
self.write_vevent(_("Birth of %s") % person.get_primary_name().get_name(), b_date, place.get_title())
else:
self.write_vevent("Birth of %s" % person.get_primary_name().get_name(), b_date)
self.write_vevent(_("Birth of %s") % person.get_primary_name().get_name(), b_date)
death_handle = person.get_death_handle()
if death_handle:
death = self.db.get_event_from_handle(death_handle)
@ -227,9 +225,9 @@ class CalendarWriter:
place_handle = death.get_place_handle()
if place_handle:
place = self.db.get_place_from_handle(place_handle)
self.write_vevent("Death of %s" % person.get_primary_name().get_name(), d_date, place.get_title())
self.write_vevent(_("Death of %s") % person.get_primary_name().get_name(), d_date, place.get_title())
else:
self.write_vevent("Death of %s" % person.get_primary_name().get_name(), d_date)
self.write_vevent(_("Death of %s") % person.get_primary_name().get_name(), d_date)
def format_single_date(self,subdate,thisyear,cal):
@ -237,10 +235,10 @@ class CalendarWriter:
(day,month,year,sl) = subdate
if thisyear:
year = 2004
year = localtime().tm_year
if not cal == Date.CAL_GREGORIAN:
return "NGREG"
return ""
if year > 0:
if month > 0:
@ -282,7 +280,7 @@ class CalendarWriter:
date_string = self.format_date(date,1)
self.writeln("");
self.writeln("BEGIN:VEVENT");
self.writeln("SUMMARY:Anniversary: %s" % event_text);
self.writeln("SUMMARY:"+_("Anniversary: %s") % event_text);
if location:
self.writeln("LOCATION:%s" % location);
self.writeln("RRULE:YD1 #0")

View File

@ -537,6 +537,6 @@ register_tool(
TestcaseGeneratorPlugin,
_("Generate Testcases for persons and families"),
category=_("Debug"),
description=_("The testcase generator will generate some persons and families."
"that habe brolen links in the database or data that is in conflict to a relation.")
description=_("The testcase generator will generate some persons and families"
" that have broken links in the database or data that is in conflict to a relation.")
)

View File

@ -53,7 +53,7 @@
<property name="visible">True</property>
<property name="label" translatable="yes">Below is a list of the family names that
GRAMPS can convert to correct capitalization.
Select the names you which GRAMPS to convert. </property>
Select the names you wish GRAMPS to convert. </property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>

View File

@ -32,7 +32,6 @@
import RelLib
import Relationship
import types
from gettext import gettext as _
#-------------------------------------------------------------------------
#
@ -117,7 +116,7 @@ class RelationshipCalculator(Relationship.RelationshipCalculator):
def get_parents(self,level):
if level>len(_parents_level)-1:
return _("remote ancestors")
return "дальние родственники"
else:
return _parents_level[level]

10739
src/po/es.po

File diff suppressed because it is too large Load Diff

View File

@ -11,14 +11,13 @@ msgstr ""
"Project-Id-Version: fr\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: Mon Apr 11 20:54:14 2005\n"
"PO-Revision-Date: 2005-04-13 19:24+0200\n"
"Last-Translator: Matthieu Pupat <tieum.tieum@free.fr>\n"
"Language-Team: Fran<EFBFBD>ais <fr@li.org>\n"
"PO-Revision-Date: 2005-04-18 22:28-0400\n"
"Last-Translator: Guillaume Pratte <guillaumep@soireevideo.org>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: KBabel 1.3.1\n"
"Plural-Forms: nplurals=2; plural=(n > 1);"
#: AddMedia.py:91 ImageSelect.py:120
msgid "Select a media object"
@ -1498,8 +1497,9 @@ msgid "Has the family attribute"
msgstr "A l'attribut familial"
#: GenericFilter.py:2211
#, fuzzy
msgid "Has source of"
msgstr ""
msgstr "Contient la source"
#: GenericFilter.py:2212
msgid "Matches the filter named"
@ -2122,7 +2122,7 @@ msgstr ""
#: ReadGedcom.py:417
msgid "Warning: Premature end of file at line %d.\n"
msgstr ""
msgstr "Avertissement : Fin de fichier pr<70>matur<75>e <20> la ligne %d.\n"
#: ReadGedcom.py:443
msgid "Warning: line %d was blank, so it was ignored.\n"
@ -2176,9 +2176,8 @@ msgstr ""
"Ce fichier est probablement corrompu ou n'est pas une base GRAMPS valide."
#: ReadXML.py:173
#, fuzzy
msgid "Could not copy file"
msgstr "Impossible d'ouvrir %s"
msgstr "Erreur lors de la copie du fichier"
#: ReadXML.py:567
msgid "GRAMPS XML import"
@ -2217,149 +2216,120 @@ msgid "default"
msgstr "d<>faut"
#: Report.py:188
#, fuzzy
msgid "First Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Premi<EFBFBD>re g<EFBFBD>n<EFBFBD>ration"
#: Report.py:188
#, fuzzy
msgid "Second Generation"
msgstr "Seconde personne"
msgstr "Deuxi<EFBFBD>me g<>n<EFBFBD>ration"
#: Report.py:189
#, fuzzy
msgid "Fourth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Quatri<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:189
#, fuzzy
msgid "Third Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Troisi<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:190
#, fuzzy
msgid "Fifth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Cinqui<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:190
#, fuzzy
msgid "Sixth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Sixi<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:191
#, fuzzy
msgid "Eighth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Huiti<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:191
#, fuzzy
msgid "Seventh Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Septi<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:192
#, fuzzy
msgid "Ninth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Neuvi<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:192
#, fuzzy
msgid "Tenth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Dixi<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:193
#, fuzzy
msgid "Eleventh Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Onzi<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:193
#, fuzzy
msgid "Twelfth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Douzi<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:194
#, fuzzy
msgid "Fourteenth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Quatorzi<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:194
#, fuzzy
msgid "Thirteenth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Treizi<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:195
#, fuzzy
msgid "Fifteenth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Quinzi<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:195
#, fuzzy
msgid "Sixteenth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Seizi<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:196
#, fuzzy
msgid "Eighteenth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Dix-huiti<74>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:196
#, fuzzy
msgid "Seventeenth Generation"
msgstr "Dix-septi<74>me"
msgstr "Dix-septi<74>me g<>n<EFBFBD>ration"
#: Report.py:197
#, fuzzy
msgid "Nineteenth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Dix-neuvi<76>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:197
#, fuzzy
msgid "Twentieth Generation"
msgstr "%s G<EFBFBD>n<EFBFBD>ration"
msgstr "Vingti<EFBFBD>me g<EFBFBD>n<EFBFBD>ration"
#: Report.py:198
#, fuzzy
msgid "Twenty-first Generation"
msgstr "Vingt et uni<6E>me"
msgstr "Vingt et uni<6E>me g<>n<EFBFBD>ration"
#: Report.py:198
#, fuzzy
msgid "Twenty-second Generation"
msgstr "Vingt-deuxi<78>me"
msgstr "Vingt-deuxi<78>me g<>n<EFBFBD>ration"
#: Report.py:199
#, fuzzy
msgid "Twenty-fourth Generation"
msgstr "Vingt-quatri<72>me"
msgstr "Vingt-quatri<72>me g<>n<EFBFBD>ration"
#: Report.py:199
#, fuzzy
msgid "Twenty-third Generation"
msgstr "Vingt-troisi<73>me"
msgstr "Vingt-troisi<73>me g<>n<EFBFBD>ration"
#: Report.py:200
#, fuzzy
msgid "Twenty-fifth Generation"
msgstr "Vingt-cinqui<75>me"
msgstr "Vingt-cinqui<75>me g<>n<EFBFBD>ration"
#: Report.py:200
#, fuzzy
msgid "Twenty-sixth Generation"
msgstr "Vingt-sixi<78>me"
msgstr "Vingt-sixi<78>me g<>n<EFBFBD>ration"
#: Report.py:201
#, fuzzy
msgid "Twenty-eighth Generation"
msgstr "Vingt-huiti<74>me"
msgstr "Vingt-huiti<74>me g<>n<EFBFBD>ration"
#: Report.py:201
#, fuzzy
msgid "Twenty-seventh Generation"
msgstr "Vingt-septi<74>me"
msgstr "Vingt-septi<74>me g<>n<EFBFBD>ration"
#: Report.py:202
#, fuzzy
msgid "Twenty-ninth Generation"
msgstr "Vingt-neuvi<76>me"
msgstr "Vingt-neuvi<76>me g<>n<EFBFBD>ration"
#: Report.py:251
msgid "Progress Report"
@ -2415,9 +2385,8 @@ msgid "Select Person"
msgstr "S<>lectionner un individu"
#: Report.py:943
#, fuzzy
msgid "%(report_name)s for %(person_name)s"
msgstr "Notes pour %(person)s :"
msgstr "%(report_name)s pour %(person_name)s"
#: Report.py:1030 Report.py:1111 docgen/PSDrawDoc.py:410
msgid "Print a copy"
@ -2789,79 +2758,64 @@ msgid "She married %(spouse)s%(endnotes)s."
msgstr "Elle <20>pousa %(spouse)s%(endnotes)s."
#: ReportUtils.py:861
#, fuzzy
msgid "He also married %(spouse)s %(date)s in %(place)s%(endnotes)s."
msgstr "il <20>pousa %(spouse)s %(date)s <20> %(place)s%(endnotes)s."
msgstr "Il <20>pousa <EFBFBD>galement %(spouse)s %(date)s <20> %(place)s%(endnotes)s."
#: ReportUtils.py:867
#, fuzzy
msgid "She also married %(spouse)s %(date)s in %(place)s%(endnotes)s."
msgstr "elle <20>pousa %(spouse)s %(date)s <20> %(place)s%(endnotes)s."
msgstr "Elle <20>pousa <EFBFBD>galement %(spouse)s %(date)s <20> %(place)s%(endnotes)s."
#: ReportUtils.py:874
#, fuzzy
msgid "He also married %(spouse)s %(date)s%(endnotes)s."
msgstr "il <20>pousa %(spouse)s %(date)s%(endnotes)s."
msgstr "Il <20>pousa <EFBFBD>galement %(spouse)s %(date)s%(endnotes)s."
#: ReportUtils.py:879 ReportUtils.py:890
#, fuzzy
msgid "She also married %(spouse)s in %(place)s%(endnotes)s."
msgstr "elle <20>pousa %(spouse)s <20> %(place)s%(endnotes)s."
msgstr "Elle <20>pousa <EFBFBD>galement %(spouse)s <20> %(place)s%(endnotes)s."
#: ReportUtils.py:885
#, fuzzy
msgid "He also married %(spouse)s in %(place)s%(endnotes)s."
msgstr "il <20>pousa %(spouse)s <20> %(place)s%(endnotes)s."
msgstr "Il <20>pousa <EFBFBD>galement %(spouse)s <20> %(place)s%(endnotes)s."
#: ReportUtils.py:896
#, fuzzy
msgid "He also married %(spouse)s%(endnotes)s."
msgstr "il <20>pousa %(spouse)s%(endnotes)s."
msgstr "Il <20>pousa <EFBFBD>galement %(spouse)s%(endnotes)s."
#: ReportUtils.py:900
#, fuzzy
msgid "She also married %(spouse)s%(endnotes)s."
msgstr "Elle <20>pousa %(spouse)s%(endnotes)s."
msgstr "Elle <20>pousa <EFBFBD>galement %(spouse)s%(endnotes)s."
#: ReportUtils.py:916
#, fuzzy
msgid "He married %(spouse)s."
msgstr "il <20>pousa %(spouse)s%(endnotes)s."
msgstr "Il <20>pousa %(spouse)s."
#: ReportUtils.py:918
#, fuzzy
msgid "She married %(spouse)s."
msgstr "Elle <20>pousa %(spouse)s%(endnotes)s."
msgstr "Elle <20>pousa %(spouse)s."
#: ReportUtils.py:921
#, fuzzy
msgid "He had relationship with %(spouse)s."
msgstr " Il eut plus tard une relation avec %(name)s"
msgstr "Il eut une relation avec %(spouse)s."
#: ReportUtils.py:924
#, fuzzy
msgid "She had relationship with %(spouse)s."
msgstr " Elle eu plus tard une relation avec %(name)s"
msgstr "Elle eut une relation avec %(spouse)s."
#: ReportUtils.py:929
#, fuzzy
msgid "He also married %(spouse)s."
msgstr "il <20>pousa %(spouse)s%(endnotes)s."
msgstr "Il <20>pousa <EFBFBD>galement %(spouse)s."
#: ReportUtils.py:931
#, fuzzy
msgid "She also married %(spouse)s."
msgstr "Elle <20>pousa %(spouse)s%(endnotes)s."
msgstr "Elle <20>pousa <EFBFBD>galement %(spouse)s."
#: ReportUtils.py:934
#, fuzzy
msgid "He also had relationship with %(spouse)s."
msgstr " Il eut plus tard une relation avec %(name)s"
msgstr "Il eut une relation avec %(spouse)s."
#: ReportUtils.py:937
#, fuzzy
msgid "She also had relationship with %(spouse)s."
msgstr " Elle eu plus tard une relation avec %(name)s"
msgstr "Elle eut <20>galement une relation avec %(spouse)s."
#: ReportUtils.py:968
msgid "He was the son of %(father)s and %(mother)s."
@ -2912,101 +2866,76 @@ msgid "She is the daughter of %(father)s."
msgstr "elle est la fille de %(father)s."
#: ReportUtils.py:1059
#, fuzzy
msgid "%(male_name)s was born on %(birth_date)s in %(birth_place)s."
msgstr ""
"%(male_name)s%(endnotes)s est n<> le %(birth_date)s <20> %(birth_place)s%"
"(birth_endnotes)s."
msgstr "%(male_name)s est n<> le %(birth_date)s <20> %(birth_place)s."
#: ReportUtils.py:1064
#, fuzzy
msgid "%(male_name)s was born on %(birth_date)s."
msgstr "%(male_name)s%(endnotes)s est n<> le %(birth_date)s%(birth_endnotes)s."
msgstr "%(male_name)s est n<> le %(birth_date)s."
#: ReportUtils.py:1068
#, fuzzy
msgid "%(male_name)s was born in %(month_year)s in %(birth_place)s."
msgstr "%(male_name)s%(endnotes)s est n<> <EFBFBD> %(birth_place)s%(birth_endnotes)s."
msgstr "%(male_name)s est n<> en %(month_year)s <20> %(birth_place)s."
#: ReportUtils.py:1073
#, fuzzy
msgid "%(male_name)s was born in %(month_year)s."
msgstr "%s est n<>(e) en l'an %s. "
msgstr "%(male_name)s est n<> en %(month_year)s."
#: ReportUtils.py:1077
#, fuzzy
msgid "%(male_name)s was born in %(birth_place)s."
msgstr "%(male_name)s%(endnotes)s est n<> <20> %(birth_place)s%(birth_endnotes)s."
msgstr "%(male_name)s est n<> <20> %(birth_place)s."
#: ReportUtils.py:1084
#, fuzzy
msgid "%(female_name)s was born on %(birth_date)s in %(birth_place)s."
msgstr ""
"%(female_name)s%(endnotes)s est n<>e le %(birth_date)s <20> %(birth_place)s%"
"(birth_endnotes)s."
msgstr "%(female_name)s est n<>e le %(birth_date)s <20> %(birth_place)s."
#: ReportUtils.py:1089
#, fuzzy
msgid "%(female_name)s was born on %(birth_date)s."
msgstr ""
"%(female_name)s%(endnotes)s est n<>e le %(birth_date)s%(birth_endnotes)s."
msgstr "%(female_name)s est n<>e le %(birth_date)s."
#: ReportUtils.py:1093
#, fuzzy
msgid "%(female_name)s was born in %(month_year)s in %(birth_place)s."
msgstr ""
"%(female_name)s%(endnotes)s est n<>e <20> %(birth_place)s%(birth_endnotes)s."
msgstr "%(female_name)s est n<>e en %(month_year)s <20> %(birth_place)s."
#: ReportUtils.py:1098
#, fuzzy
msgid "%(female_name)s was born in %(month_year)s."
msgstr ""
"%(female_name)s%(endnotes)s est n<>e <20> %(birth_place)s%(birth_endnotes)s."
msgstr "%(female_name)s est n<>e en %(month_year)s."
#: ReportUtils.py:1102
#, fuzzy
msgid "%(female_name)s was born in %(birth_place)s."
msgstr ""
"%(female_name)s%(endnotes)s est n<>e <20> %(birth_place)s%(birth_endnotes)s."
msgstr "%(female_name)s est n<>e <20> %(birth_place)s."
#: ReportUtils.py:1158
#, fuzzy
msgid "%(male_name)s died on %(death_date)s in %(death_place)s."
msgstr ""
"%(male_name)s%(endnotes)s est d<>c<EFBFBD>d<EFBFBD> le %(death_date)s <20> %(death_place)s%"
"(death_endnotes)s."
msgstr "%(male_name)s est mort le %(death_date)s <20> %(death_place)s."
#: ReportUtils.py:1163
#, fuzzy
msgid ""
"%(male_name)s died on %(death_date)s in %(death_place)s at the age of %(age)"
"d years."
msgstr ""
"%(male_name)s%(endnotes)s est d<>c<EFBFBD>d<EFBFBD> le %(death_date)s <20> %(death_place)s%"
"(death_endnotes)s."
"%(male_name)s est mort le %(death_date)s <20> %(death_place)s <20> l'<27>ge de %(age)"
"d ans."
#: ReportUtils.py:1170
#, fuzzy
msgid ""
"%(male_name)s died on %(death_date)s in %(death_place)s at the age of %(age)"
"d months."
msgstr ""
"%(male_name)s%(endnotes)s est d<>c<EFBFBD>d<EFBFBD> le %(death_date)s <20> %(death_place)s%"
"(death_endnotes)s."
"%(male_name)s est mort le %(death_date)s <20> %(death_place)s <20> l'<27>ge de %(age)"
"d mois."
#: ReportUtils.py:1177
#, fuzzy
msgid ""
"%(male_name)s died on %(death_date)s in %(death_place)s at the age of %(age)"
"d days."
msgstr ""
"%(male_name)s%(endnotes)s est d<>c<EFBFBD>d<EFBFBD> le %(death_date)s <20> %(death_place)s%"
"(death_endnotes)s."
"%(male_name)s est mort le %(death_date)s <20> %(death_place)s <20> l'<27>ge de %(age)"
"d jours."
#: ReportUtils.py:1185
#, fuzzy
msgid "%(male_name)s died on %(death_date)s."
msgstr "%(male_name)s%(endnotes)s."
msgstr "%(male_name)s est mort le %(death_date)s."
#: ReportUtils.py:1188
#, fuzzy
@ -3855,6 +3784,7 @@ msgid ""
"GEDCOM is used to transfer data between genealogy programs. Most genealogy "
"software will accept a GEDCOM file as input. "
msgstr ""
"Le format GEDCOM est utilis<69> pour transf<73>rer des donn<6E>es entre diff<66>rents programmes g<>n<EFBFBD>alogiques. La pluspart des programmes g<>n<EFBFBD>alogiques acceptent ce format."
#: WriteGedcom.py:1239
#, fuzzy
@ -4491,6 +4421,7 @@ msgid ""
"import, and override the character set by selecting a different encoding "
"below."
msgstr ""
"Les informations du fichier GEDCOM identifie l'encodage utilis<69> comme ANSEL. Parfois il peut s'agit d'une erreur. Si les donn<6E>es import<72>es contiennent des caract<63>res <20>tranges, annulez l'importation et changez l'encodage utilis<69> en choissant un nouvelle encodage ci-bas."
#: gedcomimport.glade:629
msgid "Encoding: "
@ -5476,9 +5407,8 @@ msgid "_GRAMPS ID:"
msgstr "_Identifiant GRAMPS :"
#: gramps.glade:12035 gramps.glade:14562
#, fuzzy
msgid "Last Changed:"
msgstr "Enregistrer les modifications?"
msgstr "Derni<EFBFBD>re modification :"
#: gramps.glade:12344
msgid "<b>Events</b>"
@ -5658,7 +5588,7 @@ msgstr "de haut en bas"
#: gramps.glade:16891
msgid "_Display Tip of the Day"
msgstr ""
msgstr "_Afficher l'astuce du jour"
#: gramps.glade:16960
msgid "_Date format:"
@ -5960,7 +5890,7 @@ msgstr "<b>Lieux</b>"
#: gramps.glade:22056
msgid "Global Notes"
msgstr ""
msgstr "Notes globales"
#: gramps.glade:22257
msgid "Creates a new object attribute from the above data"
@ -6147,12 +6077,11 @@ msgstr "Format d'affichage"
#: gramps.glade:30152
msgid "<span weight=\"bold\" size=\"larger\">Gramps' Tip of the Day</span>"
msgstr ""
msgstr "<span weight=\"bold\" size=\"larger\">L'astuce du jour de GRAMPS</span>"
#: gramps.glade:30185
#, fuzzy
msgid "GRAMPS - Loading Database"
msgstr "Liste de diffusion de GRAMPS"
msgstr "GRAMPS - Chargement de la base de donn<6E>e"
#: gramps.glade:30210
msgid "<span size=\"larger\" weight=\"bold\">Loading database</span>"
@ -6216,7 +6145,7 @@ msgstr "_Commentaire :"
#: gramps_main.py:149
msgid "Use at your own risk"
msgstr ""
msgstr "Utilisez <20> vos propres risques"
#: gramps_main.py:150
msgid ""
@ -6328,19 +6257,15 @@ msgstr ""
#: gramps_main.py:1204
msgid "You do not have read access to the selected file."
msgstr ""
msgstr "Vous n'avez pas d'acc<63>s en lecture sur le fichier s<>lectionn<6E>."
#: gramps_main.py:1209
#, fuzzy
msgid "Read only database"
msgstr "Ouvrir une base de donn<6E>es"
msgstr "Base de donn<6E>es en lecture seule"
#: gramps_main.py:1210
#, fuzzy
msgid "You do not have write access to the selected file."
msgstr ""
"Vous pouvez choisir soit d'<27>craser le fichier ou de changer de nom de "
"fichier."
msgstr "Vous n'avez pas acc<63>s en <20>criture au fichier s<>lectionn<6E>."
#: gramps_main.py:1219
msgid "Read Only"
@ -6498,27 +6423,23 @@ msgstr "S
#: mergedata.glade:611
msgid "<span weight=\"bold\" size=\"larger\">Merge Sources</span>"
msgstr ""
msgstr "<span weight=\"bold\" size=\"larger\">Fusionner les sources</span>"
#: mergedata.glade:638
#, fuzzy
msgid "<b>Source 1</b>"
msgstr "<b>Sources</b>"
msgstr "<b>Source 1</b>"
#: mergedata.glade:666
#, fuzzy
msgid "<b>Source 2</b>"
msgstr "<b>Sources</b>"
msgstr "<b>Source 2</b>"
#: mergedata.glade:953 mergedata.glade:975
#, fuzzy
msgid "Abbreviation:"
msgstr "A_br<EFBFBD>viation :"
msgstr "Abr<62>viation :"
#: mergedata.glade:998 mergedata.glade:1020
#, fuzzy
msgid "Publication:"
msgstr "Information de publication :"
msgstr "Publication :"
#: mergedata.glade:1043 mergedata.glade:1065
#, fuzzy
@ -7154,7 +7075,7 @@ msgstr "%d M
#: plugins/Check.py:525
msgid "Integrity Check Results"
msgstr ""
msgstr "R<EFBFBD>sultats de la v<>rification de l'int<6E>grit<69>"
#: plugins/Check.py:566
msgid "Check and repair database"
@ -7436,36 +7357,32 @@ msgid "Export to vCalendar"
msgstr "Exporter sur un CD"
#: plugins/ExportVCalendar.py:312
#, fuzzy
msgid "vCalendar"
msgstr "<b>Calendriers</b>"
msgstr "vCalendar"
#: plugins/ExportVCalendar.py:313
msgid "vCalendar is used in many calendaring and pim applications."
msgstr ""
msgstr "Le format vCalendar est utilis<69> dans plusieurs applications de gestion d'agenda et de gestion d'informations personnelles."
#: plugins/ExportVCalendar.py:314
#, fuzzy
msgid "vCalendar export options"
msgstr "Options des rapports"
msgstr "Options d'exportation vCalendar"
#: plugins/ExportVCard.py:57
msgid "Export to vCard"
msgstr "Exporter en format vCard"
#: plugins/ExportVCard.py:234
#, fuzzy
msgid "vCard"
msgstr "Correct"
msgstr "vCard"
#: plugins/ExportVCard.py:235
msgid "vCard is used in many addressbook and pim applications."
msgstr ""
#: plugins/ExportVCard.py:236
#, fuzzy
msgid "vCard export options"
msgstr "Options des rapports"
msgstr "Options d'exportation vCard"
#: plugins/FamilyGroup.py:163 plugins/NavWebPage.py:758
msgid "Husband"
@ -7537,18 +7454,16 @@ msgid "Filter Editor tool"
msgstr "Filtres personnalis<69>s"
#: plugins/FilterEditor.py:362
#, fuzzy
msgid "Filter List"
msgstr "Test du filtre"
msgstr "Liste des filtres"
#: plugins/FilterEditor.py:447
msgid "Define filter"
msgstr "D<>finir un filtre"
#: plugins/FilterEditor.py:512 plugins/FilterEditor.py:516
#, fuzzy
msgid "New Filter"
msgstr "Filtre"
msgstr "Nouveau filtre"
#: plugins/FilterEditor.py:523
#, fuzzy
@ -7599,9 +7514,8 @@ msgid "Filter Test"
msgstr "Test du filtre"
#: plugins/FilterEditor.py:888
#, fuzzy
msgid "Test"
msgstr "est"
msgstr "Test"
#: plugins/FilterEditor.py:926
msgid "Custom Filter Editor"
@ -7713,9 +7627,8 @@ msgid "Produces a textual descendant report similar to Family Tree Maker."
msgstr "Produit une liste des descendants similaire <20> Family Tree Maker."
#: plugins/GraphViz.py:64
#, fuzzy
msgid "Postscript"
msgstr "PostScript"
msgstr "Postscript"
#: plugins/GraphViz.py:65
#, fuzzy
@ -7735,14 +7648,12 @@ msgid "JPEG image"
msgstr "Image JPEG"
#: plugins/GraphViz.py:69
#, fuzzy
msgid "GIF image"
msgstr "Image"
msgstr "Image GIF"
#: plugins/GraphViz.py:73
#, fuzzy
msgid "Default"
msgstr "d<EFBFBD>faut"
msgstr "D<EFBFBD>faut"
#: plugins/GraphViz.py:74
msgid "Postscript / Helvetica"
@ -7876,7 +7787,7 @@ msgstr ""
#: plugins/GraphViz.py:636
#, fuzzy
msgid "Arrowhead direction"
msgstr "Options de Arrowhead"
msgstr "Direction des pointes de fl<66>ches"
#: plugins/GraphViz.py:638
msgid "Choose the direction that the arrows point."
@ -8173,9 +8084,8 @@ msgid ""
msgstr ""
#: plugins/NavWebPage.py:359 plugins/NavWebPage.py:362
#, fuzzy
msgid "Introduction"
msgstr "<EFBFBD>ducation"
msgstr "Introduction"
#: plugins/NavWebPage.py:444
msgid "All sources cited in the project."
@ -8183,12 +8093,11 @@ msgstr ""
#: plugins/NavWebPage.py:470 plugins/NavWebPage.py:473
msgid "Download"
msgstr ""
msgstr "T<EFBFBD>l<EFBFBD>charger"
#: plugins/NavWebPage.py:490 plugins/NavWebPage.py:493
#, fuzzy
msgid "Contact"
msgstr "Contenu"
msgstr "Contact"
#: plugins/NavWebPage.py:582
msgid "Pedigree"
@ -8200,14 +8109,12 @@ msgid "Narrative"
msgstr "Mari<72>(e)"
#: plugins/NavWebPage.py:706
#, fuzzy
msgid "Relationships"
msgstr "Relation :"
msgstr "Relations"
#: plugins/NavWebPage.py:762 plugins/NavWebPage.py:764
#, fuzzy
msgid "Partner"
msgstr "Partenaires"
msgstr "Partenaire"
#: plugins/NavWebPage.py:831
msgid ""
@ -8421,9 +8328,8 @@ msgid "Reorders the gramps IDs according to gramps' default rules."
msgstr "R<>organise les identifiants GRAMPS en fonction des r<>gles par d<>faut."
#: plugins/ScratchPad.py:139
#, fuzzy
msgid "Location"
msgstr "<EFBFBD>ducation"
msgstr "Endroit"
#: plugins/ScratchPad.py:145
msgid "Telephone"
@ -8469,8 +8375,9 @@ msgstr "Personne"
#: plugins/ScratchPad.py:830 plugins/ScratchPad.py:893
#: plugins/scratchpad.glade:9
#, fuzzy
msgid "Scratch Pad"
msgstr ""
msgstr "Bloc-notes"
#: plugins/ScratchPad.py:895
msgid ""
@ -8590,9 +8497,8 @@ msgid "Death months"
msgstr "Mois de d<>c<EFBFBD>s"
#: plugins/StatisticsChart.py:112
#, fuzzy
msgid "Causes of death"
msgstr "Cause du d<>c<EFBFBD>s"
msgstr "Causes du d<>c<EFBFBD>s"
#: plugins/StatisticsChart.py:114
msgid "Birth places"
@ -8762,8 +8668,9 @@ msgid "Mark checkboxes to add charts with indicated data"
msgstr ""
#: plugins/StatisticsChart.py:926
#, fuzzy
msgid "Note that both biological and adopted children are taken into account."
msgstr ""
msgstr "Notez que les enfants naturels et adopt<70>s seront pris en compte."
#: plugins/StatisticsChart.py:957
#, fuzzy
@ -9261,7 +9168,7 @@ msgstr ""
#: plugins/Verify.py:473
msgid "Too many children (%(num_children)d) for %(person_name)s.\n"
msgstr ""
msgstr "Trop d'enfants (%(num_children)d) pour %(person_name)s.\n"
#: plugins/Verify.py:480
msgid "ERRORS:\n"
@ -9450,14 +9357,12 @@ msgid "CD export preparation failed"
msgstr "La pr<70>paration de l'exportation sur CD a <20>chou<6F>e"
#: plugins/WriteCD.py:151
#, fuzzy
msgid "Could not create burn:///%s"
msgstr "Impossible de cr<63>er %s"
msgstr "Impossible de cr<63>er burn:///%s"
#: plugins/WriteCD.py:163
#, fuzzy
msgid "Could not create burn:///%s/.thumb"
msgstr "Impossible de cr<63>er %s"
msgstr "Impossible de cr<63>er burn:///%s/.thumb"
#: plugins/WriteCD.py:304
#, fuzzy
@ -9497,12 +9402,11 @@ msgstr "G_eneWeb"
#: plugins/WriteGeneWeb.py:578
msgid "GeneWeb is a web based genealogy program."
msgstr ""
msgstr "GeneWeb est un programme de g<>n<EFBFBD>alogie fonctionnant sur le web."
#: plugins/WriteGeneWeb.py:579
#, fuzzy
msgid "GeneWeb export options"
msgstr "Options des rapports"
msgstr "Options d'exportation en format GeneWeb"
#: plugins/WritePkg.py:202
msgid "GRAM_PS package (portable XML)"
@ -9582,6 +9486,10 @@ msgid ""
"GRAMPS can convert to correct capitalization. \n"
"Select the names you which GRAMPS to convert. "
msgstr ""
"Voici une liste des noms de familles dont \n"
"GRAMPS peut corriger l'utilisation des majuscules. \n"
"Veuillez s<>lectionner les noms que vous d<>sirez \n"
"que GRAMPS convertisse."
#: plugins/changenames.glade:125
msgid "_Accept changes and close"
@ -9850,9 +9758,8 @@ msgstr ""
"r<>sultats)"
#: rule.glade:488
#, fuzzy
msgid "<b>Filter inversion</b>"
msgstr "<b>Premi<EFBFBD>re Personne</b>"
msgstr "<b>Inversion du filtre</b>"
#: rule.glade:719
msgid "Add a new filter"
@ -9888,3 +9795,4 @@ msgstr "<b>Crit
#: rule.glade:1186
msgid "<b>Values</b>"
msgstr "<b>Valeurs</b>"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -601,7 +601,7 @@
<child>
<widget class="GtkLabel" id="label29">
<property name="visible">True</property>
<property name="label">Apply and close</property>
<property name="label" translatable="yes">Apply and close</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>