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]

10741
src/po/es.po

File diff suppressed because it is too large Load Diff

View File

@ -4,21 +4,20 @@
# Laurent Protois <laurent.protois@free.fr>, 2001-2004.
# Matthieu Pupat <tieum.tieum@free.fr>, 2004, 2005.
# Guillaume Pratte <guillaumep@soireevideo.org>, 2005.
#
#
#
#
msgid ""
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ç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ématurée à 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énération"
msgstr "Première génération"
#: Report.py:188
#, fuzzy
msgid "Second Generation"
msgstr "Seconde personne"
msgstr "Deuxième génération"
#: Report.py:189
#, fuzzy
msgid "Fourth Generation"
msgstr "%s Génération"
msgstr "Quatrième génération"
#: Report.py:189
#, fuzzy
msgid "Third Generation"
msgstr "%s Génération"
msgstr "Troisième génération"
#: Report.py:190
#, fuzzy
msgid "Fifth Generation"
msgstr "%s Génération"
msgstr "Cinquième génération"
#: Report.py:190
#, fuzzy
msgid "Sixth Generation"
msgstr "%s Génération"
msgstr "Sixième génération"
#: Report.py:191
#, fuzzy
msgid "Eighth Generation"
msgstr "%s Génération"
msgstr "Huitième génération"
#: Report.py:191
#, fuzzy
msgid "Seventh Generation"
msgstr "%s Génération"
msgstr "Septième génération"
#: Report.py:192
#, fuzzy
msgid "Ninth Generation"
msgstr "%s Génération"
msgstr "Neuvième génération"
#: Report.py:192
#, fuzzy
msgid "Tenth Generation"
msgstr "%s Génération"
msgstr "Dixième génération"
#: Report.py:193
#, fuzzy
msgid "Eleventh Generation"
msgstr "%s Génération"
msgstr "Onzième génération"
#: Report.py:193
#, fuzzy
msgid "Twelfth Generation"
msgstr "%s Génération"
msgstr "Douzième génération"
#: Report.py:194
#, fuzzy
msgid "Fourteenth Generation"
msgstr "%s Génération"
msgstr "Quatorzième génération"
#: Report.py:194
#, fuzzy
msgid "Thirteenth Generation"
msgstr "%s Génération"
msgstr "Treizième génération"
#: Report.py:195
#, fuzzy
msgid "Fifteenth Generation"
msgstr "%s Génération"
msgstr "Quinzième génération"
#: Report.py:195
#, fuzzy
msgid "Sixteenth Generation"
msgstr "%s Génération"
msgstr "Seizième génération"
#: Report.py:196
#, fuzzy
msgid "Eighteenth Generation"
msgstr "%s Génération"
msgstr "Dix-huitième génération"
#: Report.py:196
#, fuzzy
msgid "Seventeenth Generation"
msgstr "Dix-septième"
msgstr "Dix-septième génération"
#: Report.py:197
#, fuzzy
msgid "Nineteenth Generation"
msgstr "%s Génération"
msgstr "Dix-neuvième génération"
#: Report.py:197
#, fuzzy
msgid "Twentieth Generation"
msgstr "%s Génération"
msgstr "Vingtième génération"
#: Report.py:198
#, fuzzy
msgid "Twenty-first Generation"
msgstr "Vingt et unième"
msgstr "Vingt et unième génération"
#: Report.py:198
#, fuzzy
msgid "Twenty-second Generation"
msgstr "Vingt-deuxième"
msgstr "Vingt-deuxième génération"
#: Report.py:199
#, fuzzy
msgid "Twenty-fourth Generation"
msgstr "Vingt-quatrième"
msgstr "Vingt-quatrième génération"
#: Report.py:199
#, fuzzy
msgid "Twenty-third Generation"
msgstr "Vingt-troisième"
msgstr "Vingt-troisième génération"
#: Report.py:200
#, fuzzy
msgid "Twenty-fifth Generation"
msgstr "Vingt-cinquième"
msgstr "Vingt-cinquième génération"
#: Report.py:200
#, fuzzy
msgid "Twenty-sixth Generation"
msgstr "Vingt-sixième"
msgstr "Vingt-sixième génération"
#: Report.py:201
#, fuzzy
msgid "Twenty-eighth Generation"
msgstr "Vingt-huitième"
msgstr "Vingt-huitième génération"
#: Report.py:201
#, fuzzy
msgid "Twenty-seventh Generation"
msgstr "Vingt-septième"
msgstr "Vingt-septième génération"
#: Report.py:202
#, fuzzy
msgid "Twenty-ninth Generation"
msgstr "Vingt-neuvième"
msgstr "Vingt-neuvième géné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 épousa %(spouse)s%(endnotes)s."
#: ReportUtils.py:861
#, fuzzy
msgid "He also married %(spouse)s %(date)s in %(place)s%(endnotes)s."
msgstr "il épousa %(spouse)s %(date)s à %(place)s%(endnotes)s."
msgstr "Il épousa également %(spouse)s %(date)s à %(place)s%(endnotes)s."
#: ReportUtils.py:867
#, fuzzy
msgid "She also married %(spouse)s %(date)s in %(place)s%(endnotes)s."
msgstr "elle épousa %(spouse)s %(date)s à %(place)s%(endnotes)s."
msgstr "Elle épousa également %(spouse)s %(date)s à %(place)s%(endnotes)s."
#: ReportUtils.py:874
#, fuzzy
msgid "He also married %(spouse)s %(date)s%(endnotes)s."
msgstr "il épousa %(spouse)s %(date)s%(endnotes)s."
msgstr "Il épousa é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 épousa %(spouse)s à %(place)s%(endnotes)s."
msgstr "Elle épousa également %(spouse)s à %(place)s%(endnotes)s."
#: ReportUtils.py:885
#, fuzzy
msgid "He also married %(spouse)s in %(place)s%(endnotes)s."
msgstr "il épousa %(spouse)s à %(place)s%(endnotes)s."
msgstr "Il épousa également %(spouse)s à %(place)s%(endnotes)s."
#: ReportUtils.py:896
#, fuzzy
msgid "He also married %(spouse)s%(endnotes)s."
msgstr "il épousa %(spouse)s%(endnotes)s."
msgstr "Il épousa également %(spouse)s%(endnotes)s."
#: ReportUtils.py:900
#, fuzzy
msgid "She also married %(spouse)s%(endnotes)s."
msgstr "Elle épousa %(spouse)s%(endnotes)s."
msgstr "Elle épousa également %(spouse)s%(endnotes)s."
#: ReportUtils.py:916
#, fuzzy
msgid "He married %(spouse)s."
msgstr "il épousa %(spouse)s%(endnotes)s."
msgstr "Il épousa %(spouse)s."
#: ReportUtils.py:918
#, fuzzy
msgid "She married %(spouse)s."
msgstr "Elle épousa %(spouse)s%(endnotes)s."
msgstr "Elle é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 épousa %(spouse)s%(endnotes)s."
msgstr "Il épousa également %(spouse)s."
#: ReportUtils.py:931
#, fuzzy
msgid "She also married %(spouse)s."
msgstr "Elle épousa %(spouse)s%(endnotes)s."
msgstr "Elle épousa é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 é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 à %(birth_place)s%"
"(birth_endnotes)s."
msgstr "%(male_name)s est né le %(birth_date)s à %(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é à %(birth_place)s%(birth_endnotes)s."
msgstr "%(male_name)s est né en %(month_year)s à %(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é à %(birth_place)s%(birth_endnotes)s."
msgstr "%(male_name)s est né à %(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 à %(birth_place)s%"
"(birth_endnotes)s."
msgstr "%(female_name)s est née le %(birth_date)s à %(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 à %(birth_place)s%(birth_endnotes)s."
msgstr "%(female_name)s est née en %(month_year)s à %(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 à %(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 à %(birth_place)s%(birth_endnotes)s."
msgstr "%(female_name)s est née à %(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édé le %(death_date)s à %(death_place)s%"
"(death_endnotes)s."
msgstr "%(male_name)s est mort le %(death_date)s à %(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édé le %(death_date)s à %(death_place)s%"
"(death_endnotes)s."
"%(male_name)s est mort le %(death_date)s à %(death_place)s à l'â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édé le %(death_date)s à %(death_place)s%"
"(death_endnotes)s."
"%(male_name)s est mort le %(death_date)s à %(death_place)s à l'â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édé le %(death_date)s à %(death_place)s%"
"(death_endnotes)s."
"%(male_name)s est mort le %(death_date)s à %(death_place)s à l'â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é pour transférer des données entre différents programmes généalogiques. La pluspart des programmes géné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é comme ANSEL. Parfois il peut s'agit d'une erreur. Si les données importées contiennent des caractères étranges, annulez l'importation et changez l'encodage utilisé 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è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é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 à 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ès en lecture sur le fichier sélectionné."
#: gramps_main.py:1209
#, fuzzy
msgid "Read only database"
msgstr "Ouvrir une base de données"
msgstr "Base de donné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'écraser le fichier ou de changer de nom de "
"fichier."
msgstr "Vous n'avez pas accès en écriture au fichier sélectionné."
#: 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éviation :"
msgstr "Abré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ésultats de la vérification de l'intégrité"
#: 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é 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é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 à 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éfaut"
msgstr "Dé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è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 "É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élé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é(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 "É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ès"
#: plugins/StatisticsChart.py:112
#, fuzzy
msgid "Causes of death"
msgstr "Cause du décès"
msgstr "Causes du décè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é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éparation de l'exportation sur CD a échouée"
#: plugins/WriteCD.py:151
#, fuzzy
msgid "Could not create burn:///%s"
msgstr "Impossible de créer %s"
msgstr "Impossible de créer burn:///%s"
#: plugins/WriteCD.py:163
#, fuzzy
msgid "Could not create burn:///%s/.thumb"
msgstr "Impossible de créer %s"
msgstr "Impossible de cré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é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è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>