From cace1a74aac5b972c38ea06d7a2feb5b457546f9 Mon Sep 17 00:00:00 2001 From: Don Allingham Date: Fri, 5 Apr 2002 00:23:13 +0000 Subject: [PATCH] Added Russian translation and custom filter editor svn: r892 --- gramps/src/GenericFilter.py | 447 ++ gramps/src/ImageSelect.py | 8 +- gramps/src/Makefile.in | 2 +- gramps/src/const.py | 3 + gramps/src/locale/ru/LC_MESSAGES/gramps.mo | Bin 0 -> 80356 bytes gramps/src/plugins/AncestorChart.py | 1 - gramps/src/plugins/FilterEditor.py | 272 ++ gramps/src/plugins/WriteGedcom.py | 66 +- gramps/src/po/ru.po | 4870 ++++++++++++++++++++ gramps/src/rule.glade | 732 +++ 10 files changed, 6367 insertions(+), 34 deletions(-) create mode 100644 gramps/src/GenericFilter.py create mode 100644 gramps/src/locale/ru/LC_MESSAGES/gramps.mo create mode 100644 gramps/src/plugins/FilterEditor.py create mode 100644 gramps/src/po/ru.po create mode 100644 gramps/src/rule.glade diff --git a/gramps/src/GenericFilter.py b/gramps/src/GenericFilter.py new file mode 100644 index 000000000..2cffc3760 --- /dev/null +++ b/gramps/src/GenericFilter.py @@ -0,0 +1,447 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2002 Donald N. Allingham +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +"""Generic Filtering Routines""" + +__author__ = "Don Allingham" + +#------------------------------------------------------------------------- +# +# Try to abstract SAX1 from SAX2 +# +#------------------------------------------------------------------------- +try: + from xml.sax import make_parser,handler,SAXParseException +except: + from _xmlplus.sax import make_parser,handler,SAXParseException + +#------------------------------------------------------------------------- +# +# Standard Python modules +# +#------------------------------------------------------------------------- +import types +import os +from string import find,join + +#------------------------------------------------------------------------- +# +# GRAMPS modules +# +#------------------------------------------------------------------------- +from RelLib import * +from Date import Date + +#------------------------------------------------------------------------- +# +# Rule +# +#------------------------------------------------------------------------- +class Rule: + """Base rule class""" + + labels = [] + + def __init__(self,list): + assert(type(list) == type([]),"Argument is not a list") + self.list = list + + def values(self): + return self.list + + def name(self): + return 'None' + + def check(self): + return len(self.list) == len(self.labels) + + def apply(self,p): + return 1 + + def display_values(self): + v = [] + for i in range(0,len(self.list)): + if self.list[i]: + v.append('%s="%s"' % (self.labels[i],self.list[i])) + return join(v,'; ') + +#------------------------------------------------------------------------- +# +# Everyone +# +#------------------------------------------------------------------------- +class Everyone(Rule): + """Matches Everyone""" + + labels = [] + + def name(self): + return 'Everyone' + + def apply(self,p): + return 1 + +#------------------------------------------------------------------------- +# +# HasIdOf +# +#------------------------------------------------------------------------- +class HasIdOf(Rule): + """Rule that checks for a person with a specific GID""" + + labels = [ 'ID' ] + + def name(self): + return 'Has the Id' + + def apply(self,p): + return p.getId() == self.list[0] + +#------------------------------------------------------------------------- +# +# IsFemale +# +#------------------------------------------------------------------------- +class IsFemale(Rule): + """Rule that checks for a person that is a female""" + + labels = [] + + def name(self): + return 'Is a female' + + def apply(self,p): + return p.getGender() == Person.female + +#------------------------------------------------------------------------- +# +# IsDescendantOf +# +#------------------------------------------------------------------------- +class IsDescendantOf(Rule): + """Rule that checks for a person that is a descendant of a specified person""" + + labels = ['ID'] + + def name(self): + return 'Is a descendant of' + + def apply(self,p): + return self.search(p) + + def search(self,p): + if p.getId() == self.list[0]: + return 1 + + for (f,r1,r2) in p.getParentList(): + for p1 in [f.getMother(),f.getFather()]: + if p1: + if self.search(p1): + return 1 + return 0 + +#------------------------------------------------------------------------- +# +# IsAncestorOf +# +#------------------------------------------------------------------------- +class IsAncestorOf(Rule): + """Rule that checks for a person that is an ancestor of a specified person""" + + labels = ['ID'] + + def name(self): + return 'Is an ancestor of' + + def apply(self,p): + return self.search(p) + + def search(self,p): + if p.getId() == self.list[0]: + return 1 + + for f in p.getFamilyList(): + for p1 in f.getChildList(): + if p1: + if self.search(p1): + return 1 + return 0 + +#------------------------------------------------------------------------- +# +# IsMale +# +#------------------------------------------------------------------------- +class IsMale(Rule): + """Rule that checks for a person that is a male""" + + labels = [] + + def name(self): + return 'Is a male' + + def apply(self,p): + return p.getGender() == Person.male + +#------------------------------------------------------------------------- +# +# HasEvent +# +#------------------------------------------------------------------------- +class HasEvent(Rule): + """Rule that checks for a person with a particular value""" + + labels = [ 'Event', 'Date', 'Place', 'Description' ] + + def name(self): + return 'Has the event' + + def apply(self,p): + for event in [p.getBirth(),p.getDeath()] + p.getEventList(): + if self.list[0] and event.getName() != self.list[0]: + return 0 + if self.list[3] and find(event.getDescription(),self.list[3])==-1: + return 0 + if self.list[1]: + try: + d = Date.Date(self.list[1]) + except: + return 0 + if Date.compare_dates(d,event.getDateObj()): + return 0 + if self.list[2] and find(p.getPlaceName(),self.list[2]) == -1: + return 0 + return 1 + +#------------------------------------------------------------------------- +# +# HasAttribute +# +#------------------------------------------------------------------------- +class HasAttribute(Rule): + """Rule that checks for a person with a particular attribute""" + + labels = [ 'Attribute', 'Value' ] + + def name(self): + return 'Has the attribute' + + def apply(self,p): + for event in p.getAttributes(): + if self.list[0] and event.getType() != self.list[0]: + return 0 + if self.list[1] and find(event.getValue(),self.list[1])==-1: + return 0 + return 1 + +#------------------------------------------------------------------------- +# +# HasNameOf +# +#------------------------------------------------------------------------- +class HasNameOf(Rule): + """Rule that checks for full or partial name matches""" + + labels = ['Given Name','Surname','Suffix','Title'] + + def name(self): + return 'Has a name' + + def apply(self,p): + self.f = self.list[0] + self.l = self.list[1] + self.s = self.list[2] + self.t = self.list[3] + for name in [p.getPrimaryName()] + p.getAlternateNames(): + if self.f and find(name.getFirstName(),self.f) == -1: + return 0 + if self.l and find(name.getSurname(),self.l) == -1: + return 0 + if self.s and find(name.getSuffix(),self.s) == -1: + return 0 + if self.t and find(name.getTitle(),self.t) == -1: + return 0 + return 1 + +#------------------------------------------------------------------------- +# +# GenericFilter +# +#------------------------------------------------------------------------- +class GenericFilter: + """Filter class that consists of several rules""" + + def __init__(self,source=None): + if source: + self.flist = source.flist[:] + self.name = source.name + self.comment = source.comment + else: + self.flist = [] + self.name = 'NoName' + self.comment = '' + + def get_name(self): + return self.name + + def set_name(self,name): + self.name = name + + def set_comment(self,comment): + self.comment = comment + + def get_comment(self): + return self.comment + + def add_rule(self,rule): + self.flist.append(rule) + + def set_rules(self,rules): + self.flist = rules + + def get_rules(self): + return self.flist + + def apply(self,list): + result = [] + for p in list: + for rule in self.flist: + if rule.apply(p) == 0: + break + else: + result.append(p) + return result + +#------------------------------------------------------------------------- +# +# Name to class mappings +# +#------------------------------------------------------------------------- +tasks = { + "Everyone" : Everyone, + "Has the Id" : HasIdOf, + "Has a name" : HasNameOf, + "Is the descendant of" : IsDescendantOf, + "Is an ancestor of" : IsAncestorOf, + "Is a female" : IsFemale, + "Is a male" : IsMale, + "Has the event" : HasEvent, + "Has the attribute" : HasAttribute, + } + +#------------------------------------------------------------------------- +# +# GenericFilterList +# +#------------------------------------------------------------------------- +class GenericFilterList: + """Container class for the generic filters. Stores, saves, and + loads the filters.""" + + def __init__(self,file): + self.filter_list = [] + self.file = os.path.expanduser(file) + + def get_filters(self): + return self.filter_list + + def add(self,filter): + self.filter_list.append(filter) + + def load(self): + try: + parser = make_parser() + parser.setContentHandler(FilterParser(self)) + parser.parse(self.file) + except (IOError,OSError,SAXParseException): + pass + + def save(self): + f = open(self.file,'w') + f.write("\n") + f.write('\n') + for i in self.filter_list: + f.write(' \n') + for rule in i.get_rules(): + f.write(' \n' % rule.name()) + for v in rule.values(): + f.write(' \n' % v) + f.write(' \n') + f.write(' \n') + f.write('\n') + f.close() + +#------------------------------------------------------------------------- +# +# FilterParser +# +#------------------------------------------------------------------------- +class FilterParser(handler.ContentHandler): + """Parses the XML file and builds the list of filters""" + + def __init__(self,gfilter_list): + handler.ContentHandler.__init__(self) + self.gfilter_list = gfilter_list + self.f = None + self.r = None + self.a = [] + self.cname = None + + def setDocumentLocator(self,locator): + self.locator = locator + + def startElement(self,tag,attrs): + if tag == "filter": + self.f = GenericFilter() + self.f.set_name(attrs['name']) + if attrs.has_key('comment'): + self.f.set_comment(attrs['comment']) + self.gfilter_list.add(self.f) + elif tag == "rule": + name = attrs['class'] + self.a = [] + self.cname = tasks[name] + elif tag == "arg": + self.a.append(attrs['value']) + + def endElement(self,tag): + if tag == "rule": + rule = self.cname(self.a) + self.f.add_rule(rule) + + def characters(self, data): + pass + +if __name__ == '__main__': + + g = GenericFilter() + g.set_name("Everyone") + rule = Everyone([]) + g.add_rule(rule) + + l = GenericFilterList('/home/dona/.gramps/custom_filters.xml') + l.load() + l.add(g) + l.save() + diff --git a/gramps/src/ImageSelect.py b/gramps/src/ImageSelect.py index 9be06fc23..e12cbbe7f 100644 --- a/gramps/src/ImageSelect.py +++ b/gramps/src/ImageSelect.py @@ -183,13 +183,9 @@ class ImageSelect: Utils.destroy_passed_object(obj) self.load_images() - #------------------------------------------------------------------------- - # - # savephoto - Save the photo in the dataobj object. (Placeholder) - # - #------------------------------------------------------------------------- def savephoto(self, photo): - assert 0, "The savephoto function must be subclassed" + """Save the photo in the dataobj object - must be overridden""" + pass #------------------------------------------------------------------------- # diff --git a/gramps/src/Makefile.in b/gramps/src/Makefile.in index cc574b9e9..5a75a9aa2 100644 --- a/gramps/src/Makefile.in +++ b/gramps/src/Makefile.in @@ -9,7 +9,7 @@ p22_inc = @P22_INCLUDES@ pycomp = ${srcdir}/py-compile CFLAGS = -fPIC -shared -O @CFLAGS@ @CPPFLAGS@ -I@includedir@ LDFLAGS = @LDFLAGS@ -L@libdir@ @LIBS@ -LANG = sv de fr es it pt_BR +LANG = sv de fr es it pt_BR ru # Use GNU make's ':=' syntax for nice wildcard use. # If not using GNU make, then list all .py files individually diff --git a/gramps/src/const.py b/gramps/src/const.py index 543f330fe..e19940a7c 100644 --- a/gramps/src/const.py +++ b/gramps/src/const.py @@ -54,6 +54,7 @@ if os.environ.has_key('GRAMPSDIR'): else: rootDir = "." +custom_filters = "~/.gramps/custom_filters.xml" icon = "%s/gramps.xpm" % rootDir logo = "%s/logo.png" % rootDir gladeFile = "%s/gramps.glade" % rootDir @@ -73,6 +74,8 @@ srcselFile = "%s/srcsel.glade" % rootDir findFile = "%s/find.glade" % rootDir mergeFile = "%s/mergedata.glade" % rootDir traceFile = "%s/trace.glade" % rootDir +filterFile = "%s/rule.glade" % rootDir + pluginsDir = "%s/plugins" % rootDir docgenDir = "%s/docgen" % rootDir filtersDir = "%s/filters" % rootDir diff --git a/gramps/src/locale/ru/LC_MESSAGES/gramps.mo b/gramps/src/locale/ru/LC_MESSAGES/gramps.mo new file mode 100644 index 0000000000000000000000000000000000000000..6dfcc42c55435986841d1198b8e6e6791eb8039e GIT binary patch literal 80356 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 literal 0 HcmV?d00001 diff --git a/gramps/src/plugins/AncestorChart.py b/gramps/src/plugins/AncestorChart.py index d50a13fa6..0b741b891 100644 --- a/gramps/src/plugins/AncestorChart.py +++ b/gramps/src/plugins/AncestorChart.py @@ -158,7 +158,6 @@ class AncestorChart: # #-------------------------------------------------------------------- def calc(self): - width = 0 self.filter(self.start,1) self.height = self.lines*pt2cm((125.0*self.font.get_size())/100.0) diff --git a/gramps/src/plugins/FilterEditor.py b/gramps/src/plugins/FilterEditor.py new file mode 100644 index 000000000..58c0c0ff3 --- /dev/null +++ b/gramps/src/plugins/FilterEditor.py @@ -0,0 +1,272 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2000 Donald N. Allingham +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +"""Generic Filtering Routines""" + +__author__ = "Don Allingham" + +from GTK import FILL,EXPAND +import gtk +import gnome.ui +import libglade +import string +import os + +import const +from RelLib import * +import GenericFilter +import intl +_ = intl.gettext + +class FilterEditor: + def __init__(self,filterdb): + self.filterdb = GenericFilter.GenericFilterList(filterdb) + self.filterdb.load() + + self.editor = libglade.GladeXML(const.filterFile,'filter_list') + self.editor_top = self.editor.get_widget('filter_list') + self.filter_list = self.editor.get_widget('filters') + self.draw_filters() + self.editor.signal_autoconnect({ + 'on_add_clicked' : self.add_new_filter, + 'on_edit_clicked' : self.edit_filter, + 'on_close_clicked' : self.close_filter_editor, + 'on_delete_clicked' : self.delete_filter, + }) + + def close_filter_editor(self,obj): + self.filterdb.save() + self.editor_top.destroy() + + def draw_filters(self): + row = 0 + self.filter_list.clear() + for f in self.filterdb.get_filters(): + self.filter_list.append([f.get_name(),f.get_comment()]) + self.filter_list.set_row_data(row,f) + row = row + 1 + + def add_new_filter(self,obj): + filter = GenericFilter.GenericFilter() + filter.set_name('NoName') + self.filter_editor(filter) + + def edit_filter(self,obj): + sel = self.filter_list.selection + if len(sel) != 1: + return + filter = self.filter_list.get_row_data(sel[0]) + self.filter_editor(GenericFilter.GenericFilter(filter)) + + def delete_filter(self,obj): + sel = self.filter_list.selection + if len(sel) != 1: + return + filter = self.filter_list.get_row_data(sel[0]) + self.filterdb.get_filters().remove(filter) + self.draw_filters() + + def filter_editor(self,filter): + self.filter = filter + self.glade = libglade.GladeXML(const.filterFile,'define_filter') + self.top = self.glade.get_widget('define_filter') + self.rule_list = self.glade.get_widget('rule_list') + self.fname = self.glade.get_widget('filter_name') + self.comment = self.glade.get_widget('comment') + self.glade.signal_autoconnect({ + 'on_ok_clicked' : self.on_ok_clicked, + 'on_cancel_clicked' : self.on_cancel_clicked, + 'on_delete_clicked' : self.on_delete_clicked, + 'on_add_clicked' : self.on_add_clicked, + 'on_edit_clicked' : self.on_edit_clicked, + 'on_cancel_clicked' : self.on_cancel_clicked, + }) + self.fname.set_text(self.filter.get_name()) + self.comment.set_text(self.filter.get_comment()) + self.draw_rules() + + def draw_rules(self): + self.rule_list.clear() + row = 0 + for r in self.filter.get_rules(): + self.rule_list.append([r.name(),r.display_values()]) + self.rule_list.set_row_data(row,r) + row = row + 1 + + def on_cancel_clicked(self,obj): + self.top.destroy() + + def on_ok_clicked(self,obj): + n = string.strip(self.fname.get_text()) + if n == '': + return + self.filter.set_name(n) + self.filter.set_comment(string.strip(self.comment.get_text())) + for f in self.filterdb.get_filters()[:]: + if n == f.get_name(): + self.filterdb.get_filters().remove(f) + break + self.filterdb.add(self.filter) + self.draw_filters() + self.top.destroy() + + def on_add_clicked(self,obj): + self.edit_rule(None) + + def on_edit_clicked(self,obj): + if len(self.rule_list.selection) != 1: + return + row = self.rule_list.selection[0] + d = self.rule_list.get_row_data(row) + self.edit_rule(d) + + def edit_rule(self,val): + self.active_rule = val + self.rule = libglade.GladeXML(const.filterFile,'add_rule') + self.rule_top = self.rule.get_widget('add_rule') + self.frame = self.rule.get_widget('values') + self.rname = self.rule.get_widget('rule_name') + + self.notebook = gtk.GtkNotebook() + self.notebook.set_show_tabs(0) + self.notebook.set_show_border(0) + self.notebook.show() + self.frame.add(self.notebook) + self.page_num = 0 + self.page = [] + self.name2page = {} + map = {} + list = [] + for name in GenericFilter.tasks.keys(): + cname = GenericFilter.tasks[name] + arglist = cname.labels + vallist = [] + tlist = [] + self.page.append((name,cname,vallist,tlist)) + table = gtk.GtkTable(2,len(arglist)) + table.show() + pos = 0 + l2 = gtk.GtkLabel(name) + l2.set_alignment(0,0.5) + l2.show() + c = gtk.GtkListItem() + c.add(l2) + c.set_data('d',pos) + c.show() + list.append(c) + map[name] = c + for v in arglist: + l = gtk.GtkLabel(v) + l.set_alignment(1,0.5) + l.show() + if v == 'Event': + t = gtk.GtkCombo() + t.set_popdown_strings(const.personalEvents) + t.set_value_in_list(1,0) + t.entry.set_editable(0) + tlist.append(t.entry) + elif v == 'Attribute': + t = gtk.GtkCombo() + t.set_popdown_strings(const.personalAttributes) + t.set_value_in_list(1,0) + t.entry.set_editable(0) + tlist.append(t.entry) + else: + t = gtk.GtkEntry() + tlist.append(t) + t.show() + table.attach(l,0,1,pos,pos+1,EXPAND|FILL,0,5,5) + table.attach(t,1,2,pos,pos+1,EXPAND|FILL,0,5,5) + pos = pos + 1 + self.notebook.append_page(table,gtk.GtkLabel(name)) + self.name2page[name] = self.page_num + self.page_num = self.page_num + 1 + self.page_num = 0 + self.rname.disable_activate() + self.rname.list.clear_items(0,-1) + self.rname.list.append_items(list) + for v in map.keys(): + self.rname.set_item_string(map[v],v) + + if self.active_rule: + page = self.name2page[self.active_rule.name()] + self.rname.entry.set_text(self.active_rule.name()) + self.notebook.set_page(page) + (n,c,v,t) = self.page[page] + r = self.active_rule.values() + for i in range(0,len(t)): + t[i].set_text(r[i]) + + self.rname.entry.connect('changed',self.rule_changed) + self.rule.get_widget('ok').connect('clicked',self.rule_ok) + self.rule.get_widget('cancel').connect('clicked',self.rule_cancel) + + def on_delete_clicked(self,obj): + if len(self.rule_list.selection) != 1: + return + row = self.rule_list.selection[0] + del self.filter.get_rules()[row] + self.draw_rules() + + def rule_changed(self,obj): + name = obj.get_text() + page = self.name2page[name] + self.notebook.set_page(page) + + def rule_ok(self,obj): + name = self.rname.entry.get_text() + page = self.name2page[name] + (n,c,v,t) = self.page[page] + value_list = [] + for x in t: + value_list.append(x.get_text()) + new_rule = c(value_list) + if self.active_rule: + index = self.rule_list.selection[0] + self.filter.get_rules()[index] = new_rule + else: + self.filter.add_rule(new_rule) + self.draw_rules() + self.rule_top.destroy() + + def rule_cancel(self,obj): + self.rule_top.destroy() + +#------------------------------------------------------------------------- +# +# +# +#------------------------------------------------------------------------- +def runTool(database,person,callback): + FilterEditor(const.custom_filters) + +#------------------------------------------------------------------------- +# +# +# +#------------------------------------------------------------------------- +from Plugins import register_tool + +register_tool( + runTool, + _("Custom Filter Editor"), + category=_("Utilities"), + description=_("The Custom Filter Editor builds custom filters that can be used to select people included reports, exports, and other utilities.") + ) diff --git a/gramps/src/plugins/WriteGedcom.py b/gramps/src/plugins/WriteGedcom.py index b68a8f2c0..8f28f098a 100644 --- a/gramps/src/plugins/WriteGedcom.py +++ b/gramps/src/plugins/WriteGedcom.py @@ -416,27 +416,28 @@ class GedcomWriter: filter_obj = self.topDialog.get_widget("filter") myMenu = gtk.GtkMenu() - menuitem = gtk.GtkMenuItem(_("Entire Database")) - myMenu.append(menuitem) - menuitem.set_data("filter",entire_database) - menuitem.show() - name = person.getPrimaryName().getRegularName() - menuitem = gtk.GtkMenuItem(_("Ancestors of %s") % name) - myMenu.append(menuitem) - menuitem.set_data("filter",active_person_ancestors) - menuitem.show() - menuitem = gtk.GtkMenuItem(_("Descendants of %s") % name) - myMenu.append(menuitem) - menuitem.set_data("filter",active_person_descendants) - menuitem.show() - menuitem = gtk.GtkMenuItem(_("Ancestors and Descendants of %s") % name) - myMenu.append(menuitem) - menuitem.set_data("filter",active_person_ancestors_and_descendants) - menuitem.show() - menuitem = gtk.GtkMenuItem(_("People somehow connected to %s") % name) - myMenu.append(menuitem) - menuitem.set_data("filter",interconnected) - menuitem.show() + + import GenericFilter + + all = GenericFilter.GenericFilter() + all.set_name(_("Entire Database")) + all.add_rule(GenericFilter.Everyone([])) + + des = GenericFilter.GenericFilter() + des.set_name(_("Descendants of %s") % person.getPrimaryName().getName()) + des.add_rule(GenericFilter.IsDescendantOf([person.getId()])) + + ans = GenericFilter.GenericFilter() + ans.set_name(_("Ancestors of %s") % person.getPrimaryName().getName()) + ans.add_rule(GenericFilter.IsAncestorOf([person.getId()])) + + flist = GenericFilter.GenericFilterList(const.custom_filters) + flist.load() + for f in [all,des,ans] + flist.get_filters(): + menuitem = gtk.GtkMenuItem(_(f.get_name())) + myMenu.append(menuitem) + menuitem.set_data("filter",f) + menuitem.show() filter_obj.set_menu(myMenu) self.filter_menu = myMenu @@ -461,7 +462,7 @@ class GedcomWriter: self.restrict = self.topDialog.get_widget("restrict").get_active() self.private = self.topDialog.get_widget("private").get_active() - filter = self.filter_menu.get_active().get_data("filter") + cfilter = self.filter_menu.get_active().get_data("filter") act_tgt = self.target_menu.get_active() self.target_ged = act_tgt.get_data("data") @@ -482,8 +483,19 @@ class GedcomWriter: name = self.topDialog.get_widget("filename").get_text() - (self.plist,self.flist,self.slist) = filter(self.db,self.person,self.private) - + if cfilter == None: + self.plist = self.db.getPersonMap().values() + else: + self.plist = cfilter.apply(self.db.getPersonMap().values()) + + self.flist = [] + self.slist = [] + for p in self.plist[:]: + add_persons_sources(p,self.slist,self.private) + for family in p.getFamilyList(): + add_familys_sources(family,self.slist,self.private) + self.flist.append(family) + Utils.destroy_passed_object(obj) glade_file = "%s/gedcomexport.glade" % os.path.dirname(__file__) @@ -592,12 +604,12 @@ class GedcomWriter: father_alive = mother_alive = 0 self.g.write("0 @%s@ FAM\n" % self.fid(family.getId())) person = family.getFather() - if person != None: + if person != None and person in self.plist: self.g.write("1 HUSB @%s@\n" % self.pid(person.getId())) father_alive = person.probablyAlive() person = family.getMother() - if person != None: + if person != None and person in self.plist: self.g.write("1 WIFE @%s@\n" % self.pid(person.getId())) mother_alive = person.probablyAlive() @@ -624,6 +636,8 @@ class GedcomWriter: self.dump_event_stats(event) for person in family.getChildList(): + if person not in self.plist: + continue self.g.write("1 CHIL @%s@\n" % self.pid(person.getId())) if self.adopt == ADOPT_FTW: if person.getMainParents() == family: diff --git a/gramps/src/po/ru.po b/gramps/src/po/ru.po new file mode 100644 index 000000000..0758b548e --- /dev/null +++ b/gramps/src/po/ru.po @@ -0,0 +1,4870 @@ +# Russian translation for Gramps; +# Русский перевод GRAMPS. +# Copyright (C) 2002 Free Software Foundation, Inc. +# Alex Roitman , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: Gramps 0.7.3-snap20020330\n" +"POT-Creation-Date: Fri Mar 15 07:51:16 2002\n" +"PO-Revision-Date: 2002-04-02 16:51-0600\n" +"Last-Translator: Alex Roitman \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=koi8-r\n" +"Content-Transfer-Encoding: 8bit\n" + +#: AddMedia.py:101 +msgid "%s is not a valid file name or does not exist." +msgstr "%s не является правильным именем файла, или не существует." + +#: AddSpouse.py:99 +msgid "Choose Spouse/Partner of %s" +msgstr "Выбрать Супруга/Партнера для %s" + +#: AddSpouse.py:110 const.py:391 const.py:399 plugins/FamilyGroup.py:288 +#: plugins/FamilyGroup.py:290 plugins/test.py:288 plugins/test.py:290 +msgid "Married" +msgstr "Женаты" + +#: AddSpouse.py:194 const.py:393 const.py:401 +msgid "Partners" +msgstr "Партнеры" + +#: AddrEdit.py:77 +msgid "Address Editor for %s" +msgstr "Редактор Адресов для %s" + +#: AttrEdit.py:83 +msgid "Attribute Editor for %s" +msgstr "Редактор Атрибутов для %s" + +#: Bookmarks.py:92 Bookmarks.py:96 +msgid "Edit Bookmarks" +msgstr "Правка Закладок" + +#: Bookmarks.py:108 +msgid "Up" +msgstr "Наверх" + +#: Bookmarks.py:109 +msgid "Down" +msgstr "Вниз" + +#: Bookmarks.py:110 EditPerson.glade:1958 EditPerson.glade:2647 +#: EditPerson.glade:3075 EditPerson.glade:3893 EditPerson.glade:4488 +#: gramps.glade:1724 gramps.glade:2011 imagesel.glade:1285 imagesel.glade:2286 +#: marriage.glade:938 marriage.glade:1349 places.glade:1216 places.glade:1721 +#: srcsel.glade:858 styles.glade:247 +msgid "Delete" +msgstr "Уничтожить" + +#: ChooseParents.py:82 ChooseParents.py:83 ChooseParents.py:91 +#: ChooseParents.py:92 EditPerson.glade:158 SelectChild.py:101 +#: SelectChild.py:102 SelectChild.py:274 SelectChild.py:275 const.py:114 +#: gramps.glade:4991 gramps.glade:5011 gramps.glade:5186 gramps.glade:5283 +#: gramps.glade:5570 gramps.glade:5591 gramps.glade:5635 gramps.glade:5665 +#: gramps.glade:6570 gramps.glade:6600 gramps.glade:6617 gramps.glade:6647 +#: gramps_main.py:1370 gramps_main.py:1532 plugins/EventCmp.py:474 +#: plugins/FamilyGroup.py:138 plugins/test.py:138 +msgid "Birth" +msgstr "Рождение" + +#: ChooseParents.py:105 +msgid "Choose the Parents of %s" +msgstr "Выбрать Родителей для %s" + +#: ChooseParents.py:158 ChooseParents.py:159 gramps_main.py:1455 +#: gramps_main.py:1456 +msgid "Parent" +msgstr "Родитель" + +#: ChooseParents.py:161 gramps.glade:1866 gramps.glade:5040 +#: gramps_main.py:1459 mergedata.glade:518 mergedata.glade:1180 +#: plugins/FamilyGroup.py:197 plugins/IndivSummary.py:283 +#: plugins/WebPage.py:245 plugins/WebPage.py:248 plugins/test.py:197 +msgid "Mother" +msgstr "Мать" + +#: ChooseParents.py:162 gramps.glade:1775 gramps.glade:4842 +#: gramps_main.py:1458 mergedata.glade:766 mergedata.glade:1478 +#: plugins/FamilyGroup.py:184 plugins/IndivSummary.py:269 +#: plugins/WebPage.py:244 plugins/WebPage.py:247 plugins/test.py:184 +msgid "Father" +msgstr "Отец" + +#: Date.py:75 +msgid "April" +msgstr "Апрель" + +#: Date.py:75 +msgid "February" +msgstr "Февраль" + +#: Date.py:75 +msgid "January" +msgstr "Январь" + +#: Date.py:75 +msgid "March" +msgstr "Март" + +#: Date.py:76 +msgid "August" +msgstr "Август" + +#: Date.py:76 +msgid "July" +msgstr "Июль" + +#: Date.py:76 +msgid "June" +msgstr "Июнь" + +#: Date.py:76 +msgid "May" +msgstr "Май" + +#: Date.py:77 +msgid "December" +msgstr "Декабрь" + +#: Date.py:77 +msgid "November" +msgstr "Ноябрь" + +#: Date.py:77 +msgid "October" +msgstr "Октябрь" + +#: Date.py:77 +msgid "September" +msgstr "Сентябрь" + +#: Date.py:108 +msgid "(from|between|bet|bet." +msgstr "(с|между|меж.|меж." + +#: Date.py:109 +msgid "(and|to|-" +msgstr "(и|до|-" + +#: Date.py:242 Date.py:268 Date.py:281 +msgid "from" +msgstr "с" + +#: Date.py:242 Date.py:268 Date.py:281 plugins/changetype.glade:152 +msgid "to" +msgstr "по" + +#: Date.py:251 EditPerson.glade:6437 EventEdit.py:135 dialog.glade:501 +msgid "Julian" +msgstr "Юлианский" + +#: Date.py:253 EditPerson.glade:6437 EventEdit.py:135 dialog.glade:501 +msgid "Hebrew" +msgstr "Еврейский" + +#: Date.py:255 EditPerson.glade:6437 dialog.glade:501 +msgid "French" +msgstr "Французский" + +#: Date.py:336 Date.py:353 Date.py:514 +msgid "about" +msgstr "около" + +#: Date.py:336 Date.py:543 +msgid "abt" +msgstr "ок" + +#: Date.py:337 +msgid "abt." +msgstr "ок." + +#: Date.py:337 +msgid "est" +msgstr "прим" + +#: Date.py:338 +msgid "est." +msgstr "прим." + +#: Date.py:338 Date.py:355 +msgid "circa" +msgstr "около" + +#: Date.py:339 Date.py:356 +msgid "around" +msgstr "около" + +#: Date.py:339 Date.py:357 Date.py:516 Date.py:545 +msgid "before" +msgstr "до" + +#: Date.py:340 +msgid "bef" +msgstr "до" + +#: Date.py:340 +msgid "bef." +msgstr "до" + +#: Date.py:341 +msgid "aft." +msgstr "после" + +#: Date.py:341 Date.py:358 Date.py:518 Date.py:547 +msgid "after" +msgstr "после" + +#: Date.py:342 +msgid "aft" +msgstr "после" + +#: Date.py:352 +msgid "abt\\.?" +msgstr "ок\\.?" + +#: Date.py:354 +msgid "est\\.?" +msgstr "ок\\.?" + +#: Date.py:359 +msgid "aft\\.?" +msgstr "после\\,?" + +#: Date.py:360 +msgid "bef\\.?" +msgstr "до\\.?" + +#: Date.py:573 Date.py:601 Date.py:628 Date.py:657 Date.py:696 +msgid "ABOUT" +msgstr "ОКОЛО" + +#: Date.py:575 Date.py:603 Date.py:630 Date.py:660 Date.py:698 +msgid "BEFORE" +msgstr "ДО" + +#: Date.py:577 Date.py:605 Date.py:632 Date.py:662 Date.py:700 +msgid "AFTER" +msgstr "ПОСЛЕ" + +#: DbPrompter.py:78 gramps_main.py:673 gramps_main.py:1182 gramps_main.py:1193 +msgid "No Comment Provided" +msgstr "Комментарий Отсутствует" + +#: EditPerson.glade:24 gramps.glade:6843 +msgid "Edit Person - GRAMPS" +msgstr "Правка Лиц - GRAMPS" + +#: EditPerson.glade:66 +msgid "Accept changes and close dialog" +msgstr "Принять изменения и закрыть диалог" + +#: EditPerson.glade:97 +msgid "New Person" +msgstr "Новое Лицо" + +#: EditPerson.glade:114 +msgid "Select information source" +msgstr "Выбрать источник информации" + +#: EditPerson.glade:188 EditPerson.glade:214 EditPerson.glade:439 +#: EditPerson.glade:465 EditPerson.glade:1237 EditPerson.glade:1263 +#: EditPerson.glade:1577 EditPerson.glade:1603 EditPerson.glade:1629 +#: EditPerson.glade:1655 EditPerson.glade:1681 EditPerson.glade:2238 +#: EditPerson.glade:2264 EditPerson.glade:2290 EditPerson.glade:2316 +#: EditPerson.glade:2368 EditPerson.glade:2824 EditPerson.glade:2850 +#: EditPerson.glade:3423 EditPerson.glade:3449 EditPerson.glade:3475 +#: EditPerson.glade:3501 EditPerson.glade:3527 EditPerson.glade:3553 +#: EditPerson.glade:3579 EditPerson.glade:4250 EditPerson.glade:4276 +#: gramps.glade:3482 gramps.glade:3508 gramps.glade:3534 gramps.glade:3586 +#: gramps.glade:3820 imagesel.glade:534 imagesel.glade:639 imagesel.glade:691 +#: imagesel.glade:818 imagesel.glade:1037 imagesel.glade:1063 +#: imagesel.glade:1533 imagesel.glade:1611 imagesel.glade:1689 +#: imagesel.glade:1782 imagesel.glade:2037 imagesel.glade:2063 +#: marriage.glade:557 marriage.glade:583 marriage.glade:609 marriage.glade:635 +#: marriage.glade:687 marriage.glade:1103 marriage.glade:1129 places.glade:871 +#: places.glade:897 places.glade:923 places.glade:949 places.glade:1027 +#: places.glade:1557 places.glade:1583 +msgid ":" +msgstr ":" + +#: EditPerson.glade:240 EditPerson.glade:517 EditPerson.glade:2030 +#: EditPerson.glade:2551 EditPerson.glade:3215 EditPerson.glade:3797 +#: EditPerson.glade:4540 EditPerson.glade:4812 EditPerson.glade:5084 +#: EditPerson.glade:6003 dialog.glade:168 filters/After.py:57 +#: filters/Before.py:57 marriage.glade:349 marriage.glade:843 +#: marriage.glade:1764 revision.glade:351 srcsel.glade:507 +msgid "Date" +msgstr "Дата" + +#: EditPerson.glade:266 EditPerson.glade:491 EditPerson.glade:2056 +#: EditPerson.glade:2564 EditPerson.glade:4592 EditPerson.glade:4864 +#: EditPerson.glade:5162 ImageSelect.py:713 dialog.glade:220 +#: filters/EventPlace.py:72 marriage.glade:375 marriage.glade:856 +#: marriage.glade:1790 preferences.glade:2783 +msgid "Place" +msgstr "Место" + +#: EditPerson.glade:354 +msgid "Invoke birth event editor" +msgstr "Вызвать редактор событий рождения" + +#: EditPerson.glade:362 EditPerson.glade:589 EditPerson.glade:1942 +#: EditPerson.glade:2631 EditPerson.glade:3059 EditPerson.glade:3877 +#: EditPerson.glade:4472 imagesel.glade:1269 imagesel.glade:2270 +#: marriage.glade:922 marriage.glade:1333 srcsel.glade:843 styles.glade:232 +msgid "Edit" +msgstr "Правка" + +#: EditPerson.glade:385 plugins/EventCmp.py:474 plugins/FamilyGroup.py:156 +#: plugins/test.py:156 +msgid "Death" +msgstr "Смерть" + +#: EditPerson.glade:581 +msgid "Invoke death event editor" +msgstr "Вызвать редактор событий смерти" + +#: EditPerson.glade:612 gramps.glade:1103 gramps.glade:2293 gramps.glade:6787 +#: gramps.glade:6993 plugins/IndivSummary.py:236 plugins/WebPage.py:238 +#: plugins/WebPage.py:240 +msgid "Gender" +msgstr "Пол" + +#: EditPerson.glade:640 const.py:103 gramps.glade:6680 gramps.glade:7066 +msgid "male" +msgstr "мужчина" + +#: EditPerson.glade:655 const.py:104 gramps.glade:6700 gramps.glade:7081 +msgid "female" +msgstr "женщина" + +#: EditPerson.glade:670 EditPerson.py:393 const.py:105 gramps.glade:6720 +#: plugins/FamilyGroup.py:379 plugins/IndivSummary.py:161 +#: plugins/WebPage.py:505 plugins/test.py:379 +msgid "unknown" +msgstr "неизвестно" + +#: EditPerson.glade:686 +msgid "Preferred Name" +msgstr "Предпочитаемое Имя" + +#: EditPerson.glade:716 EditPerson.glade:1395 EditPerson.glade:5526 +#: gramps.glade:4513 gramps.glade:6735 gramps.glade:7096 +msgid "Given Name" +msgstr "Имя" + +#: EditPerson.glade:742 EditPerson.glade:1421 EditPerson.glade:5693 +msgid "Suffix" +msgstr "Суффикс" + +#: EditPerson.glade:768 gramps.glade:2585 gramps.glade:3794 gramps.glade:3933 +#: gramps.glade:5984 imagesel.glade:235 imagesel.glade:792 imagesel.glade:1765 +#: imagesel.glade:2383 places.glade:168 srcsel.glade:208 srcsel.glade:791 +msgid "Title" +msgstr "Титул" + +#: EditPerson.glade:794 +msgid "Nick Name" +msgstr "Краткое Имя" + +#: EditPerson.glade:820 EditPerson.glade:1369 EditPerson.glade:5552 +#: filters/MatchSndEx.py:46 gramps.glade:4539 gramps.glade:6761 +#: gramps.glade:6967 +msgid "Surname" +msgstr "Фамилия" + +#: EditPerson.glade:955 +msgid "Select source for this name information" +msgstr "Выбрать источник для данной информации об имени" + +#: EditPerson.glade:963 ImageSelect.py:707 Utils.py:194 Utils.py:196 +#: places.glade:350 preferences.glade:2809 +msgid "Source" +msgstr "Источник" + +#: EditPerson.glade:1008 +msgid "Enter/modify notes regarding this name" +msgstr "Ввести/изменить записки касающиеся этого имени" + +#: EditPerson.glade:1016 EditPerson.glade:4719 EditPerson.glade:5014 +#: EditPerson.glade:5312 EditPerson.glade:5611 EditPerson.glade:6112 +#: Utils.py:189 dialog.glade:322 dialog.glade:842 gramps.glade:6167 +#: marriage.glade:1717 places.glade:1256 +msgid "Note" +msgstr "Записка" + +#: EditPerson.glade:1037 EditPerson.glade:1707 EditPerson.glade:1875 +#: EditPerson.glade:5810 gramps.glade:3716 gramps.glade:4045 +#: imagesel.glade:2357 +msgid "Type" +msgstr "Тип" + +#: EditPerson.glade:1102 +msgid "Image" +msgstr "Изображение" + +#: EditPerson.glade:1129 +msgid "Identification" +msgstr "Идентификация" + +#: EditPerson.glade:1185 marriage.glade:230 +msgid "gramps ID" +msgstr "gramps ID" + +#: EditPerson.glade:1318 GrampsCfg.py:95 GrampsCfg.py:101 gramps.glade:6137 +#: imagesel.glade:1882 places.glade:649 plugins/verify.glade:165 +msgid "General" +msgstr "Общее" + +#: EditPerson.glade:1348 +msgid "No Alternate Names" +msgstr "Нет Альтернативных Имен" + +#: EditPerson.glade:1525 EditPerson.glade:1888 EditPerson.glade:2186 +#: EditPerson.glade:2577 EditPerson.glade:2772 EditPerson.glade:3005 +#: EditPerson.glade:3371 EditPerson.glade:3823 gramps.glade:2401 +#: gramps.glade:3560 gramps.glade:4139 imagesel.glade:985 imagesel.glade:1215 +#: imagesel.glade:1985 imagesel.glade:2216 marriage.glade:505 +#: marriage.glade:869 marriage.glade:1051 marriage.glade:1279 +msgid "Details" +msgstr "Подробности" + +#: EditPerson.glade:1862 config.glade:130 gramps.glade:965 gramps.glade:2179 +#: gramps.glade:4463 gramps.glade:4925 gramps.glade:5120 gramps.glade:5440 +#: mergedata.glade:544 mergedata.glade:1699 plugins/IndivSummary.py:222 +#: plugins/WebPage.py:236 plugins/relcalc.glade:157 plugins/soundex.glade:143 +#: preferences.glade:1763 +msgid "Name" +msgstr "Имя" + +#: EditPerson.glade:1917 +msgid "Create an alternate name for this person" +msgstr "Создать альтернативное имя для данного лица" + +#: EditPerson.glade:1926 EditPerson.glade:2615 EditPerson.glade:3043 +#: EditPerson.glade:3861 EditPerson.glade:4456 gramps.glade:1696 +#: gramps.glade:4882 gramps.glade:5078 imagesel.glade:1253 imagesel.glade:2254 +#: marriage.glade:906 marriage.glade:1317 places.glade:1186 places.glade:1691 +#: srcsel.glade:828 styles.glade:217 +msgid "Add" +msgstr "Добавить" + +#: EditPerson.glade:1933 +msgid "Modify the selected name" +msgstr "Изменить выделенное имя" + +#: EditPerson.glade:1949 +msgid "Delete selected name" +msgstr "Уничтожить выделенное имя" + +#: EditPerson.glade:1968 +msgid "Names" +msgstr "Имена" + +#: EditPerson.glade:2009 marriage.glade:328 +msgid "No Events" +msgstr "Нет Событий" + +#: EditPerson.glade:2082 EditPerson.glade:2538 EditPerson.glade:4114 +#: EditPerson.glade:4418 EditPerson.glade:6605 const.py:313 dialog.glade:194 +#: marriage.glade:401 places.glade:1422 places.glade:1654 +#: plugins/pafexport.glade:241 +msgid "Description" +msgstr "Описание" + +#: EditPerson.glade:2342 dialog.glade:404 marriage.glade:661 +msgid "Cause" +msgstr "Причина" + +#: EditPerson.glade:2525 filters/EventType.py:42 marriage.glade:830 +msgid "Event" +msgstr "Событие" + +#: EditPerson.glade:2606 +msgid "Create a new event from the above data" +msgstr "Создать новое событие из вышеприведенных данных" + +#: EditPerson.glade:2622 +msgid "Update the selected event with the above data" +msgstr "Обновить выделенное событие используя вышеприведенные данные" + +#: EditPerson.glade:2638 +msgid "Delete the selected event" +msgstr "Уничтожть выделенное событие" + +#: EditPerson.glade:2658 marriage.glade:948 +msgid "Events" +msgstr "События" + +#: EditPerson.glade:2699 imagesel.glade:912 imagesel.glade:1912 +#: marriage.glade:978 +msgid "No Attributes" +msgstr "Нет Атрибутов" + +#: EditPerson.glade:2720 EditPerson.glade:2992 dialog.glade:716 +#: imagesel.glade:933 imagesel.glade:1202 imagesel.glade:1933 +#: imagesel.glade:2203 marriage.glade:999 marriage.glade:1266 +msgid "Value" +msgstr "Значение" + +#: EditPerson.glade:2979 dialog.glade:690 imagesel.glade:1189 +#: imagesel.glade:2190 marriage.glade:1253 +msgid "Attribute" +msgstr "Атрибут" + +#: EditPerson.glade:3034 +msgid "Create a new attribute from the above data" +msgstr "Создать новый атрибут из вышеприведенных данных" + +#: EditPerson.glade:3050 +msgid "Update the selected attribute with the above data" +msgstr "Обновить выделенный атрибут используя вышеприведенные данные" + +#: EditPerson.glade:3066 imagesel.glade:1276 imagesel.glade:2277 +#: marriage.glade:1340 +msgid "Delete the selected attribute" +msgstr "Уничтожить выделенный атрибут" + +#: EditPerson.glade:3086 imagesel.glade:1295 imagesel.glade:2296 +#: marriage.glade:1359 +msgid "Attributes" +msgstr "Атрибуты" + +#: EditPerson.glade:3116 +msgid "No Addresses" +msgstr "Нет Адресов" + +#: EditPerson.glade:3137 EditPerson.glade:6270 config.glade:234 +#: dialog.glade:1105 gramps.glade:3231 places.glade:272 places.glade:793 +#: places.glade:1149 preferences.glade:1867 +msgid "Country" +msgstr "Страна" + +#: EditPerson.glade:3163 EditPerson.glade:6194 +msgid "City/County" +msgstr "Город/Область" + +#: EditPerson.glade:3189 EditPerson.glade:6029 config.glade:156 +#: preferences.glade:1789 +msgid "Address" +msgstr "Адрес" + +#: EditPerson.glade:3241 EditPerson.glade:6244 config.glade:208 +#: preferences.glade:1841 +msgid "State/Province" +msgstr "Штат/Провинция" + +#: EditPerson.glade:3267 EditPerson.glade:6296 config.glade:286 +#: preferences.glade:1893 +msgid "ZIP/Postal Code" +msgstr "Индекс/Почтовый Код" + +#: EditPerson.glade:3810 +msgid "Location" +msgstr "Местоположение" + +#: EditPerson.glade:3852 +msgid "Create a new address from the above data" +msgstr "Создать новый адрес используя вышеприведенные данные" + +#: EditPerson.glade:3868 +msgid "Update the selected address with the above data" +msgstr "Обновить выделенный адрес используя вышеприведенные данные" + +#: EditPerson.glade:3884 +msgid "Delete the selected address" +msgstr "Уничтожить выделенный адрес" + +#: EditPerson.glade:3904 +msgid "Addresses" +msgstr "Адреса" + +#: EditPerson.glade:3924 +msgid "Enter miscellaneous relevant data and documentation" +msgstr "Правка различных связанных данных и документации" + +#: EditPerson.glade:3935 imagesel.glade:882 imagesel.glade:2326 +#: marriage.glade:1390 plugins/WebPage.py:421 +msgid "Notes" +msgstr "Записки" + +#: EditPerson.glade:4012 gramps.glade:6243 marriage.glade:1468 +msgid "Place new media object in this gallery" +msgstr "Поместить новый медиа-объект в данную галерею" + +#: EditPerson.glade:4021 gramps.glade:4188 gramps.glade:6252 +#: marriage.glade:1477 places.glade:1340 +msgid "Add Media Object" +msgstr "Добавить Медиа-Объект" + +#: EditPerson.glade:4028 gramps.glade:6259 marriage.glade:1484 +msgid "Remove selected object from this gallery only" +msgstr "Удалить выделенный объект только из данной галереи" + +#: EditPerson.glade:4037 gramps.glade:4217 gramps.glade:6268 +#: marriage.glade:1493 places.glade:1355 +msgid "Delete Media Object" +msgstr "Уничтожить Медиа-Объект" + +#: EditPerson.glade:4044 gramps.glade:6275 marriage.glade:1500 +msgid "Modify selected object" +msgstr "Изменить выделенный объект" + +#: EditPerson.glade:4053 gramps.glade:6284 marriage.glade:1509 +#: places.glade:1370 +msgid "Edit Properties" +msgstr "Правка Свойств" + +#: EditPerson.glade:4063 gramps.glade:6296 marriage.glade:1519 +#: places.glade:1382 plugins/WebPage.py:307 +msgid "Gallery" +msgstr "Галерея" + +#: EditPerson.glade:4093 places.glade:1401 +msgid "Internet Addresses" +msgstr "Адреса в Интернете" + +#: EditPerson.glade:4140 EditPerson.glade:4405 EditPerson.glade:6579 +#: places.glade:1448 places.glade:1641 +msgid "Web Address" +msgstr "Web Адрес" + +#: EditPerson.glade:4229 +msgid "Go to this web page" +msgstr "Иди на данную web-страницу" + +#: EditPerson.glade:4237 places.glade:1544 +msgid "Go" +msgstr "Иди" + +#: EditPerson.glade:4447 +msgid "Add an internet reference about this person" +msgstr "Добавить интернет-ссылку о данном лице" + +#: EditPerson.glade:4463 +msgid "Modify selected reference" +msgstr "Изменить выделенную ссылку" + +#: EditPerson.glade:4479 +msgid "Delete selected reference" +msgstr "Уничтожить выделенную ссылку" + +#: EditPerson.glade:4498 places.glade:1731 +msgid "Internet" +msgstr "Интернет" + +#: EditPerson.glade:4518 +msgid "LDS Baptism" +msgstr "Крещение АДС" + +#: EditPerson.glade:4566 EditPerson.glade:4838 EditPerson.glade:5110 +#: marriage.glade:1738 +msgid "Temple" +msgstr "Храм" + +#: EditPerson.glade:4691 EditPerson.glade:4986 EditPerson.glade:5284 +#: gramps.glade:655 gramps.glade:2825 marriage.glade:1690 +#: plugins/WebPage.py:169 plugins/gedcomexport.glade:437 +#: plugins/pkgexport.glade:266 +msgid "Sources" +msgstr "Источники" + +#: EditPerson.glade:4790 +msgid "Endowment" +msgstr "Завещанное" + +#: EditPerson.glade:5062 +#, fuzzy +msgid "Sealed to Parents" +msgstr "Приписан к Родителям" + +#: EditPerson.glade:5136 gramps.glade:1736 +msgid "Parents" +msgstr "Родители" + +#: EditPerson.glade:5385 marriage.glade:1820 +msgid "LDS" +msgstr "АСД" + +#: EditPerson.glade:5400 +msgid "Alternate Name Editor - GRAMPS" +msgstr "Редактор Альтернативных Имен - GRAMPS" + +#: EditPerson.glade:5442 EditPerson.glade:5920 EditPerson.glade:6496 +#: gramps.glade:5876 marriage.glade:66 +msgid "Accept and close" +msgstr "Принять и закрыть" + +#: EditPerson.glade:5458 gramps.glade:5892 marriage.glade:82 +msgid "Reject changes and close" +msgstr "Отвергнуть измемения и закрыть" + +#: EditPerson.glade:5485 +msgid "Alternate Name Editor" +msgstr "Редактор Альтернативных Имен" + +#: EditPerson.glade:5658 EditPerson.glade:6159 EditPerson.glade:6676 +#: dialog.glade:369 dialog.glade:889 +msgid "Private Record" +msgstr "Личная Запись" + +#: EditPerson.glade:5672 +msgid "Edit source information for this name" +msgstr "Правка информации об источниках для данного имени" + +#: EditPerson.glade:5680 EditPerson.glade:6181 dialog.glade:391 +#: dialog.glade:911 +msgid "Edit Source" +msgstr "Правка Источника" + +#: EditPerson.glade:5878 +msgid "Address Editor - GRAMPS" +msgstr "Редактор Адресов - GRAMPS" + +#: EditPerson.glade:5962 +msgid "Address Editor" +msgstr "Редактор Адресов" + +#: EditPerson.glade:6173 +msgid "Edit source information for this address" +msgstr "Правка информации об источниках для данного адреса" + +#: EditPerson.glade:6431 dialog.glade:490 +msgid "Selects the calendar format for display" +msgstr "Выбирает формат календаря для просмотра" + +#: EditPerson.glade:6437 EventEdit.py:135 dialog.glade:501 +msgid "Gregorian" +msgstr "Григорианский" + +#: EditPerson.glade:6454 +msgid "Internet Address Editor - GRAMPS" +msgstr "Редактор Интернет-Адресов - GRAMPS" + +#: EditPerson.glade:6538 EditPlace.py:278 EditPlace.py:302 +msgid "Internet Address Editor" +msgstr "Редактор Интернет-Адресов" + +#: EditPerson.py:368 GrampsCfg.py:61 const.py:118 gramps.glade:4991 +#: gramps.glade:5186 gramps.glade:5570 gramps.glade:5635 gramps.glade:6570 +#: gramps.glade:6617 +msgid "None" +msgstr "Нет" + +#: EditPerson.py:385 EditSource.py:138 +msgid "%(father)s and %(mother)s" +msgstr "%(father)s и %(mother)s" + +#: EditPerson.py:722 EditPerson.py:731 +msgid "Are you sure you want to abandon your changes?" +msgstr "Вы уверены что вы хотите потерять ваши изменения?" + +#: EditPerson.py:1011 +msgid "Make the selected name the preferred name" +msgstr "Сделать выделенное имя предпочитаемым именем" + +#: EditPerson.py:1071 Marriage.py:368 +msgid "GRAMPS ID value was not changed." +msgstr "Значение GRAMPS ID не было изменено." + +#: EditPerson.py:1072 +msgid "%(grampsid)s is already used by %(person)s" +msgstr " %(лицо)s уже использует %(GRAMPS ID)s " + +#: EditPerson.py:1177 +msgid "Changing the gender caused problems with marriage information." +msgstr "Изменение пола вызвало проблемы с брачной информацией." + +#: EditPerson.py:1178 +msgid "Please check the person's marriages." +msgstr "Пожалуйста проверьте браки данного лица." + +#: EditPlace.py:276 EditPlace.py:300 +msgid "Internet Address Editor for %s" +msgstr "Редактор Интернет-Адресов для %s" + +#: EditPlace.py:349 gramps.glade:608 plugins/gedcomexport.glade:489 +#: plugins/pkgexport.glade:318 +msgid "People" +msgstr "Люди" + +#: EditPlace.py:351 EditPlace.py:360 +msgid "%s [%s]: event %s\n" +msgstr "%s [%s]: событие %s\n" + +#: EditPlace.py:358 plugins/gedcomexport.glade:463 plugins/pkgexport.glade:292 +msgid "Families" +msgstr "Семьи" + +#: EditSource.py:156 +msgid "Individual Events" +msgstr "Индивидуальные События" + +#: EditSource.py:161 +msgid "Individual Attributes" +msgstr "Индивидуальные Атрибуты" + +#: EditSource.py:166 +msgid "Individual Names" +msgstr "Индивидуальные Имена" + +#: EditSource.py:171 +msgid "Family Events" +msgstr "Семейные События" + +#: EditSource.py:176 +msgid "Family Attributes" +msgstr "Семейные Атрибуты" + +#: EditSource.py:181 GrampsCfg.py:97 plugins/Summary.py:104 +msgid "Media Objects" +msgstr "Медиа-Объекты" + +#: EditSource.py:186 gramps.glade:672 gramps.glade:3412 +msgid "Places" +msgstr "Места" + +#: Filter.py:73 +msgid "All people" +msgstr "Все люди" + +#: Filter.py:73 Filter.py:80 gramps.glade:816 plugins/eventcmp.glade:764 +#: plugins/eventcmp.glade:858 +msgid "Qualifier" +msgstr "Критерий" + +#: Filter.py:82 VersionControl.py:271 +msgid "No description" +msgstr "Нет описания" + +#: Filter.py:119 +msgid "Failed to load the module: %s" +msgstr "Не смогла загрузить модуль: %s" + +#: Find.py:46 Find.py:51 +msgid "Find Person" +msgstr "Найти Лицо" + +#: GrampsCfg.py:60 +msgid "Father's surname" +msgstr "Фамилия Отца" + +#: GrampsCfg.py:62 +msgid "Combination of mother's and father's surname" +msgstr "Комбинация фамилий матери и отца " + +#: GrampsCfg.py:63 +msgid "Icelandic style" +msgstr "Исландский стиль" + +#: GrampsCfg.py:67 +msgid "Month Day, Year" +msgstr "Месяц День, Год" + +#: GrampsCfg.py:68 +msgid "MON Day, Year" +msgstr "МЕС День, Год" + +#: GrampsCfg.py:69 +msgid "Day MON Year" +msgstr "День МЕС Год" + +#: GrampsCfg.py:70 +msgid "MM/DD/YYYY" +msgstr "ММ/ДД/ГГГГ" + +#: GrampsCfg.py:71 +msgid "MM-DD-YYYY" +msgstr "ММ-ДД-ГГГГ" + +#: GrampsCfg.py:72 +msgid "DD/MM/YYYY" +msgstr "ДД/ММ/ГГГГ" + +#: GrampsCfg.py:73 +msgid "DD-MM-YYYY" +msgstr "ДД-ММ-ГГГГ" + +#: GrampsCfg.py:74 +msgid "MM.DD.YYYY" +msgstr "ММ.ДД.ГГГГ" + +#: GrampsCfg.py:75 +msgid "DD.MM.YYYY" +msgstr "ДД.ММ.ГГГГ" + +#: GrampsCfg.py:76 +msgid "DD. Month Year" +msgstr "ДД. Месяц Год" + +#: GrampsCfg.py:77 +msgid "YYYY/MM/DD" +msgstr "ГГГГ/ММ/ДД" + +#: GrampsCfg.py:78 +msgid "YYYY-MM-DD" +msgstr "ГГГГ-ММ-ДД" + +#: GrampsCfg.py:79 +msgid "YYYY.MM.DD" +msgstr "ГГГГ.ММ.ДД" + +#: GrampsCfg.py:83 +msgid "MM/DD/YYYY, MM.DD.YYYY, or MM-DD-YYYY" +msgstr "ММ/ДД/ГГГГ, ММ.ДД.ГГГГ, или ММ-ДД-ГГГГ" + +#: GrampsCfg.py:84 +msgid "DD/MM/YYYY, DD.MM.YYYY, or DD-MM-YYYY" +msgstr "ДД/ММ/ГГГГ, ДД.ММ.ГГГГ, или ДД-ММ-ГГГГ" + +#: GrampsCfg.py:85 +msgid "YYYY/MM/DD, YYYY.MM.DD, or YYYY-MM-DD" +msgstr "ГГГГ/ММ/ДД, ГГГГ.ММ.ДД, или ГГГГ-ММ-ДД" + +#: GrampsCfg.py:89 +msgid "Firstname Surname" +msgstr "Имя Фамилия" + +#: GrampsCfg.py:90 +msgid "Surname, Firstname" +msgstr "Фамилия, Имя" + +#: GrampsCfg.py:94 preferences.glade:310 revision.glade:140 +msgid "Database" +msgstr "База Данных" + +#: GrampsCfg.py:96 +msgid "Dates and Calendars" +msgstr "Даты и Календари" + +#: GrampsCfg.py:98 +msgid "GRAMPS internal IDs" +msgstr "Внутренние GRAMPS ID номера" + +#: GrampsCfg.py:99 +msgid "Revision Control" +msgstr "Сонтроль Изменений" + +#: GrampsCfg.py:100 preferences.glade:900 +msgid "Display" +msgstr "Дисплей" + +#: GrampsCfg.py:102 +msgid "Tool and Status Bars" +msgstr "Панели Инструментов и Статуса" + +#: GrampsCfg.py:103 +msgid "List Colors" +msgstr "Цвета Списков" + +#: GrampsCfg.py:104 +msgid "Usage" +msgstr "Использование" + +#: GrampsCfg.py:105 preferences.glade:663 +msgid "Find" +msgstr "Найти" + +#: GrampsCfg.py:106 preferences.glade:2234 +msgid "Report Preferences" +msgstr "Настройки Отчетов" + +#: GrampsCfg.py:107 config.glade:65 preferences.glade:1742 +msgid "Researcher Information" +msgstr "Информация об Исследователе" + +#: GrampsCfg.py:108 +msgid "Data Guessing" +msgstr "Угадывание Дат" + +#: GrampsCfg.py:696 GrampsCfg.py:711 +msgid "No default format" +msgstr "Нет формата-по-умолчанию" + +#: ImageSelect.py:147 +msgid "That is not a valid file name." +msgstr "Это не является правильным именем файла." + +#: ImageSelect.py:256 +msgid "Could not import %s - %s" +msgstr "Не смогла импортировать %s - %s" + +#: ImageSelect.py:316 MediaView.py:331 plugins/ReadGedcom.py:803 +#: plugins/ReadGedcom.py:838 plugins/ReadGedcom.py:873 +msgid "Could not import %s" +msgstr "Не смогла импортировать %s" + +#: ImageSelect.py:429 MediaView.py:167 +msgid "View in the default viewer" +msgstr "Просмотр в устройстве просмотра-по-умолчанию" + +#: ImageSelect.py:432 MediaView.py:169 +msgid "Edit with the GIMP" +msgstr "Правка в GIMP" + +#: ImageSelect.py:434 MediaView.py:171 +msgid "Edit Object Properties" +msgstr "Правка Свойств Объекта" + +#: ImageSelect.py:437 MediaView.py:174 +msgid "Convert to local copy" +msgstr "Преобразовать в локальную копию" + +#: ImageSelect.py:695 gramps.glade:1357 gramps.glade:1423 +#: plugins/EventCmp.py:474 preferences.glade:2731 +msgid "Person" +msgstr "Лицо" + +#: ImageSelect.py:701 gramps.glade:626 gramps.glade:2476 +#: preferences.glade:2757 +msgid "Family" +msgstr "Семья" + +#: LocEdit.py:66 +msgid "Location Editor for %s" +msgstr "Редактор Местоположений для %s" + +#: LocEdit.py:68 dialog.glade:1012 +msgid "Location Editor" +msgstr "Редактор Местоположений" + +#: Marriage.py:102 Marriage.py:480 Marriage.py:498 Utils.py:135 +#: plugins/Check.py:178 +msgid "%s and %s" +msgstr "%s и %s" + +#: Marriage.py:347 +msgid "Data was modified. Are you sure you want to abandon your changes?" +msgstr "" +"Данные были изменены. Вы уверены что вы хотите потерять ваши изменения?" + +#: MediaView.py:148 +msgid "The file no longer exists" +msgstr "Этого файла уже не существует" + +#: MediaView.py:265 +msgid "This media object is currently being used. Delete anyway?" +msgstr "" +"Этот медиа-объект в настоящий момент используется. Все равно уничтожить?" + +#: NameEdit.py:75 +msgid "Alternate Name Editor for %s" +msgstr "Редактор Альтернативных Имен для %s" + +#: NoteEdit.py:56 NoteEdit.py:63 +msgid "Edit Note" +msgstr "Прака Записки" + +#: PaperMenu.py:59 +msgid "Portrait" +msgstr "Вертикально" + +#: PaperMenu.py:64 +msgid "Landscape" +msgstr "Горизонтально" + +#: PedView.py:346 +msgid "Doubleclick to edit, Shift-Doubleclick to make the active person" +msgstr "Двойной клик - правка, Shift-двойной клик - сделать активным лицом" + +#: PedView.py:362 +msgid "Double clicking will make %s the active person" +msgstr "Двойной клик сделает %s активным лицом" + +#: PlaceView.py:142 +msgid "Exactly two places must be selected to perform a merge" +msgstr "Ровно два места должны быть выделены чтобы произвести слияние" + +#: PlaceView.py:231 +msgid "Currently, you can only delete one place at a time" +msgstr "В настоящий момент вы можете уничтожить только одно место за один раз" + +#: PlaceView.py:250 +msgid "This place is currently being used. Delete anyway?" +msgstr "Это место в настоящий момент используется. Все равно уничтожить?" + +#: PlaceView.py:261 +msgid "You requested too many places to edit at the same time" +msgstr "Вы затребовали слишком много мест для одновременной правки" + +#: Plugins.py:75 +msgid "No description was provided" +msgstr "Не было предоставлено описания" + +#: Plugins.py:202 plugins.glade:167 +msgid "Report Selection" +msgstr "Выбор Отчетов" + +#: Plugins.py:218 +msgid "Tool Selection" +msgstr "Выбор Инструментов" + +#: Plugins.py:237 +msgid "The following modules could not be loaded:" +msgstr "Следующие модули не могли быть загружены:" + +#: Plugins.py:359 Plugins.py:370 +msgid "Uncategorized" +msgstr "Не отнесено к категории" + +#: Plugins.py:362 Plugins.py:373 const.py:119 const.py:394 const.py:402 +#: gramps.glade:4991 gramps.glade:5186 gramps.glade:5570 gramps.glade:5635 +#: gramps.glade:6570 gramps.glade:6617 gramps_main.py:1524 +msgid "Unknown" +msgstr "Неизвестно" + +#: ReadXML.py:89 ReadXML.py:92 ReadXML.py:144 ReadXML.py:148 +#: plugins/ReadGedcom.py:98 plugins/ReadGedcom.py:102 +msgid "%s could not be opened\n" +msgstr "%s не мог быть открыт\n" + +#: ReadXML.py:98 ReadXML.py:103 ReadXML.py:154 ReadXML.py:160 ReadXML.py:188 +#: ReadXML.py:194 +msgid "Error reading %s" +msgstr "Ошибка при чтении %s" + +#: ReadXML.py:183 +msgid "%s (revision %s)" +msgstr "%s (ревизия %s)" + +#: RelImage.py:58 +msgid "" +"Could not import %s\n" +"The file has been moved or deleted" +msgstr "" +"Не смогла импортировать %s\n" +"Файл был перемещен или уничтожен" + +#: RelImage.py:72 RelImage.py:75 RelImage.py:140 RelImage.py:143 +#: gramps_main.py:694 gramps_main.py:698 gramps_main.py:706 gramps_main.py:710 +#: plugins/WriteGedcom.py:513 plugins/WriteGedcom.py:518 +#: plugins/WriteGedcomXML.py:515 plugins/WriteGedcomXML.py:520 +msgid "Could not create %s" +msgstr "Не смогла создать %s" + +#: RelImage.py:82 +msgid "Error creating the thumbnail : %s" +msgstr "Ошибка при чтении пиктограммы : %s" + +#: RelImage.py:88 docgen/OpenOfficeDoc.py:509 +msgid "Error copying %s" +msgstr "Ошибка при копировании %s" + +#: RelImage.py:110 RelImage.py:120 +msgid "Could not load image file %s" +msgstr "Не смогла загрузить файл изображения %s" + +#: RelImage.py:150 +msgid "Could not replace %s" +msgstr "Не смогла заменить %s" + +#: RelImage.py:155 +msgid "" +"Could not create a thumbnail for %s\n" +"The file has been moved or deleted" +msgstr "" +"Не смогла создать поктограмму для %s\n" +"Файл был перемещен или уничтожен" + +#: RelImage.py:163 +msgid "Could not create a thumbnail for %s" +msgstr "Не смогла создать пиктограмму для %s" + +#: Report.py:56 +msgid "First" +msgstr "Первое" + +#: Report.py:57 +msgid "Second" +msgstr "Второе" + +#: Report.py:58 +msgid "Third" +msgstr "Третье" + +#: Report.py:59 +msgid "Fourth" +msgstr "Четвертое" + +#: Report.py:60 +msgid "Fifth" +msgstr "Пятое" + +#: Report.py:61 +msgid "Sixth" +msgstr "Шестое" + +#: Report.py:62 +msgid "Seventh" +msgstr "Седьмое" + +#: Report.py:63 +msgid "Eighth" +msgstr "Восьмое" + +#: Report.py:64 +msgid "Ninth" +msgstr "Девятое" + +#: Report.py:65 +msgid "Tenth" +msgstr "Десятое" + +#: Report.py:66 +msgid "Eleventh" +msgstr "Одиннацатое" + +#: Report.py:67 +msgid "Twelfth" +msgstr "Двенадцатое" + +#: Report.py:68 +msgid "Thirteenth" +msgstr "Тринадцатое" + +#: Report.py:69 +msgid "Fourteenth" +msgstr "Четырнадцатое" + +#: Report.py:70 +msgid "Fifteenth" +msgstr "Пятнадцатое" + +#: Report.py:71 +msgid "Sixteenth" +msgstr "Шестнадцатое" + +#: Report.py:72 +msgid "Seventeenth" +msgstr "Семнадцатое" + +#: Report.py:73 +msgid "Eighteenth" +msgstr "Восемнадцатое" + +#: Report.py:74 +msgid "Nineteenth" +msgstr "Деватнадцатое" + +#: Report.py:75 +msgid "Twentieth" +msgstr "Двадцатое" + +#: Report.py:76 +msgid "Twenty-first" +msgstr "Двадцать первое" + +#: Report.py:77 +msgid "Twenty-second" +msgstr "Двадцать второе" + +#: Report.py:78 +msgid "Twenty-third" +msgstr "Двадцать третье" + +#: Report.py:79 +msgid "Twenty-fourth" +msgstr "Двадцать четвертое" + +#: Report.py:80 +msgid "Twenty-fifth" +msgstr "Двадцать пятое" + +#: Report.py:81 +msgid "Twenty-sixth" +msgstr "Двадцать шестое" + +#: Report.py:82 +msgid "Twenty-seventh" +msgstr "Двадцать седьмое" + +#: Report.py:83 +msgid "Twenty-eighth" +msgstr "Двадцать восьмое" + +#: Report.py:84 +msgid "Twenty-ninth" +msgstr "Двадцать девятое" + +#: Report.py:90 +msgid "Progress Report - GRAMPS" +msgstr "Прогресс Отчета - GRAMPS" + +#: Report.py:90 +msgid "Working" +msgstr "Работаю" + +#: Report.py:108 +msgid "%v of %u (%P%%)" +msgstr "%v из %u (%P%%)" + +#: Report.py:205 +msgid "Base Report - GRAMPS" +msgstr "Основной Отчет - GRAMPS" + +#: Report.py:219 +msgid "Save Report As - GRAMPS" +msgstr "Сохранить Отчет Как - GRAMPS" + +#: Report.py:441 Report.py:446 +msgid "Save As" +msgstr "Сохранить Как" + +#: Report.py:453 +msgid "Directory" +msgstr "Каталог" + +#: Report.py:455 +msgid "Filename" +msgstr "Имя Файла" + +#: Report.py:488 +msgid "Output Format" +msgstr "Выходной Формат" + +#: Report.py:501 +msgid "Styles" +msgstr "Стили" + +#: Report.py:506 styles.glade:343 +msgid "Style Editor" +msgstr "Редактор Стилей" + +#: Report.py:532 Report.py:534 +msgid "Paper Options" +msgstr "Параметры Бумаги" + +#: Report.py:535 Report.py:537 +msgid "HTML Options" +msgstr "Параметры HTML" + +#: Report.py:554 styles.glade:537 +msgid "Size" +msgstr "Размер" + +#: Report.py:559 +msgid "Orientation" +msgstr "Ориентация" + +#: Report.py:571 +msgid "Page Count" +msgstr "Счет Страниц" + +#: Report.py:581 plugins/eventcmp.glade:225 +msgid "Template" +msgstr "Образец" + +#: Report.py:582 +msgid "Choose File" +msgstr "Выбрать Файл" + +#: Report.py:582 +msgid "HTML Template" +msgstr "Образец HTML" + +#: Report.py:617 +msgid "Report Options" +msgstr "Параметры Отчета" + +#: Report.py:626 gramps.glade:772 plugins/eventcmp.glade:689 +#: plugins/eventcmp.glade:845 plugins/gedcomexport.glade:155 +#: plugins/pafexport.glade:155 +msgid "Filter" +msgstr "Фильтр" + +#: Report.py:641 +msgid "Generations" +msgstr "Поколения" + +#: Report.py:648 +msgid "Page break between generations" +msgstr "Новая страница между поколениями" + +#: SelectChild.py:81 SelectChild.py:86 SelectChild.py:90 SelectChild.py:256 +#: SelectChild.py:261 SelectChild.py:265 plugins/RelCalc.py:305 +msgid "Relationship to %s" +msgstr "Отношение к %s" + +#: SourceView.py:171 +msgid "This source is currently being used. Delete anyway?" +msgstr "Этот источник в настоящий момент используется. Все равно уничтожить?" + +#: Utils.py:199 Utils.py:201 imagesel.glade:770 +msgid "Private" +msgstr "Личное" + +#: Utils.py:556 +msgid "default" +msgstr "по умолчанию" + +#: VersionControl.py:263 preferences.glade:561 +msgid "RCS" +msgstr "RCS" + +#: WriteXML.py:84 +msgid "Failure writing %s, original file restored" +msgstr "Ошибка при записи %s, первоначальный файл восстановлен" + +#: config.glade:18 +msgid "Getting Started - GRAMPS" +msgstr "Первые Шаги - GRAMPS" + +#: config.glade:45 +msgid "Getting Started" +msgstr "Первые Шаги" + +#: config.glade:52 +msgid "" +"Welcome to GRAMPS, the Genealogical Research\n" +"and Analysis Management Programming System.\n" +"\n" +"Several options and information need to be gathered\n" +"before GRAMPS is ready to be used. Any of this\n" +"information can be changed in the future in the \n" +"Preferences dialog under the Settings menu." +msgstr "" +"Добро пожаловать в GRAMPS,\n" +"Генелаогическую Систему Программироввания\n" +"Исследований и Управления Анализом\n" +"(Genealogical Research and Analysis Management\n" +"Programming System).\n" +"\n" +"Некоторые параметры и определенная информация\n" +"должны быть введены перед тем как GRAMPS \n" +"готова к использованию. Любая часть этой \n" +"информации может быть изменена в будущем\n" +"в диалоге Настройки, в меню Свойства." + +#: config.glade:99 +msgid "" +"In order to create valid GEDCOM files, the following information\n" +"needs to be entered. If you do not plan to generate GEDCOM \n" +"files, you may leave it blank." +msgstr "" +"Для создания правильных GEDCOM файлов необходимо\n" +"ввести следующую информацию. Если вы не планируете\n" +"создание GEDCOM файлов, то можете оствить эту часть\n" +"незаполненной." + +#: config.glade:182 dialog.glade:1053 gramps.glade:3060 places.glade:194 +#: places.glade:715 places.glade:1110 preferences.glade:1815 +msgid "City" +msgstr "Город" + +#: config.glade:260 preferences.glade:1945 +msgid "email" +msgstr "email" + +#: config.glade:312 preferences.glade:1919 +msgid "Phone" +msgstr "Телефон" + +#: config.glade:574 +msgid "Numerical Date Formats" +msgstr "Численные Форматы Дат" + +#: config.glade:609 +msgid "" +"There are three common formats for entering dates in a numerical format.\n" +"Without some type of indication, GRAMPS cannot correctly tell what\n" +"format you are using. Please indicate your preferred format for entering\n" +"numerical dates" +msgstr "" +"Существует три общепринятых формата для ввода дат в численном\n" +"формате. Без какого-либо указания GRAMPS не может правильно\n" +"распознать испоьзуемый вами формат. Пожалуйста, обозначьте\n" +"ваши предпочтения для ввода дат в численном формате." + +#: config.glade:654 +msgid "MM/DD/YYYY (United States)" +msgstr "ММ/ДД/ГГГГ (Американский)" + +#: config.glade:669 +msgid "DD/MM/YYYY (European)" +msgstr "ДД/ММ/ГГГГ (Европейский)" + +#: config.glade:684 +msgid "YYYY-MM-DD (ISO)" +msgstr "ГГГГ-ММ-ДД (ISO)" + +#: config.glade:707 +msgid "Alternate Calendar Support" +msgstr "Поддержка Альтернативных Календарей" + +#: config.glade:742 +msgid "" +"By default, all dates stored by GRAMPS use the Gregorian calendar. This\n" +"is normally sufficient for most users. Support may be enabled for the " +"Julian,\nFrench Republican, and Hebrew calendar. If you believe that you will " +"need one or\n" +"more of these alternate calendars, enable alternate calendar support." +msgstr "" +"По умолчанию, GRAMPS хранит все даты используя Григорианский\n" +"календарь. Обычно этого достаточно для большинства пользователей.\n" +"Можно обеспечить поддержку для Юлианского, Французкого\n" +"Республиканского и Еврейского календарей. Если вы считаете что вам\n" +"понадобится один или более из этих альтернативных календарей,\n" +"включите поддержку альтернативных календарей." + +#: config.glade:776 +msgid "Enable support for alternate calendars" +msgstr "Включить поддержку альтернативных календарей" + +#: config.glade:797 +msgid "LDS Extensions" +msgstr "Расширения АСД" + +#: config.glade:833 +msgid "" +"GRAMPS has support for LDS Ordinances, which are special\n" +"event types related to the Church of Jesus Christ of Latter Day Saints.\n" +"\n" +"You may choose to either enable or disable this support. You may\n" +"change this option in the future in the Preferences dialog." +msgstr "" +"GRAMPS поддерживает Процедуры АСД, которые являются\n" +"специальными типами событий связанных с Церковью Иисуса\n" +"Христа Адвентистов Седьмого Дня.\n" +"\n" +"Вы можете включить или выключить эту поддержку. Вы можете\n" +"изменить эту настройку в будущем в диалоге Настройки." + +#: config.glade:867 +msgid "Enable LDS Ordinance Support" +msgstr "Включить Поддержку Процедур АСД" + +#: config.glade:894 +msgid "Complete" +msgstr "Сделано" + +#: config.glade:901 +msgid "" +"GRAMPS is an Open Source project. Its success \n" +"depends on the users. User feedback is important. \n" +"Please join the mailing lists, submit bug reports,\n" +"suggest improvements, and see how you can \n" +"contribute.\n" +"\n" +"Please enjoy using GRAMPS." +msgstr "" +"GRAMPS является проектом Открытого Кода\n" +"(Open Source project). Успех проекта завист от\n" +"его пользователей. Вклад пользователей важен.\n" +"Пожалуйста, подписывайтесь на списки рассылки,\n" +"присилайте сообщения об ошибках, предлагайте\n" +"улучшения и думайте, как вы можете внести\n" +"свой вклад.\n" +"\n" +"Наслаждайтесь, используя GRAMPS." + +#: const.py:93 +msgid "" +"GRAMPS (Genealogical Research and Analysis Management Programming System) is " +"a personal genealogy program." +msgstr "" +"GRAMPS (Генелаогическая Система Программироввания Исследований и Управления " +"Анализом) (Genealogical Research and Analysis Management Programming System) " +"является персональной генеалогической программой.\n" +"\n" +"Перевод: Александр Ройтман" + +#: const.py:115 const.py:233 gramps.glade:4991 gramps.glade:5186 +#: gramps.glade:5570 gramps.glade:5635 gramps.glade:6570 gramps.glade:6617 +msgid "Adopted" +msgstr "Приемный" + +#: const.py:116 gramps.glade:4991 gramps.glade:5186 gramps.glade:5570 +#: gramps.glade:5635 gramps.glade:6570 gramps.glade:6617 +msgid "Stepchild" +msgstr "Пасынок/падчерица" + +#: const.py:117 gramps.glade:4991 gramps.glade:5186 +msgid "Foster" +msgstr "Воспитанник" + +#: const.py:120 const.py:395 const.py:403 mergedata.glade:268 +msgid "Other" +msgstr "Другое" + +#: const.py:129 srcsel.glade:617 +msgid "Very Low" +msgstr "Очень Низкая" + +#: const.py:130 plugins/Merge.py:88 srcsel.glade:617 +msgid "Low" +msgstr "Низкая" + +#: const.py:131 srcsel.glade:617 +msgid "Normal" +msgstr "Нормальная" + +#: const.py:132 plugins/Merge.py:96 srcsel.glade:617 +msgid "High" +msgstr "Высокая" + +#: const.py:133 srcsel.glade:617 +msgid "Very High" +msgstr "Очень Высокая" + +#: const.py:153 +msgid "Annulment" +msgstr "Аннулирование" + +#: const.py:154 const.py:248 +msgid "Divorce Filing" +msgstr "Заявление о Разводе" + +#: const.py:155 +msgid "Divorce" +msgstr "Развод" + +#: const.py:156 +msgid "Engagement" +msgstr "Помолвка" + +#: const.py:157 +msgid "Marriage Contract" +msgstr "Брачный Контракт" + +#: const.py:158 +msgid "Marriage License" +msgstr "Свидетельство о Браке" + +#: const.py:159 +msgid "Marriage Settlement" +msgstr "Брачное Соглашение" + +#: const.py:160 +msgid "Marriage" +msgstr "Брак" + +#: const.py:234 +msgid "Alternate Birth" +msgstr "Альтернативное Рождение" + +#: const.py:235 +msgid "Alternate Death" +msgstr "Альтернативная Смерть" + +#: const.py:236 +msgid "Adult Christening" +msgstr "Крещение Взрослого" + +#: const.py:237 +msgid "Baptism" +msgstr "Крещение" + +#: const.py:238 +msgid "Bar Mitzvah" +msgstr "Бар-Мицва" + +#: const.py:239 +msgid "Bas Mitzvah" +msgstr "Бат-Мицва" + +#: const.py:240 +msgid "Blessing" +msgstr "Благословение" + +#: const.py:241 +msgid "Burial" +msgstr "Захоронение" + +#: const.py:242 +msgid "Cause Of Death" +msgstr "Причина Смерти" + +#: const.py:243 +msgid "Census" +msgstr "Перепись" + +#: const.py:244 +msgid "Christening" +msgstr "Крещение" + +#: const.py:245 +msgid "Confirmation" +msgstr "Конфирмация" + +#: const.py:246 +msgid "Cremation" +msgstr "Кремация" + +#: const.py:247 +msgid "Degree" +msgstr "Степень" + +#: const.py:249 +msgid "Education" +msgstr "Образование" + +#: const.py:250 +msgid "Elected" +msgstr "Избран(а)" + +#: const.py:251 +msgid "Emigration" +msgstr "Эмиграция" + +#: const.py:252 +msgid "First Communion" +msgstr "Первое Причастие" + +#: const.py:253 +msgid "Immigration" +msgstr "Иммиграция" + +#: const.py:254 +msgid "Graduation" +msgstr "Выпуск" + +#: const.py:255 +msgid "Medical Information" +msgstr "Медицинская информация" + +#: const.py:256 +msgid "Military Service" +msgstr "Воинская Служба" + +#: const.py:257 +msgid "Naturalization" +msgstr "Натурализация" + +#: const.py:258 +msgid "Nobility Title" +msgstr "Дворянский Титул" + +#: const.py:259 +msgid "Number of Marriages" +msgstr "Количество Браков" + +#: const.py:260 +msgid "Occupation" +msgstr "Профессия" + +#: const.py:261 +msgid "Ordination" +msgstr "Назначение" + +#: const.py:262 +msgid "Probate" +msgstr "Подтверждение" + +#: const.py:263 +msgid "Property" +msgstr "Собственность" + +#: const.py:264 +msgid "Religion" +msgstr "Религия" + +#: const.py:265 +msgid "Residence" +msgstr "Место Жительства" + +#: const.py:266 +msgid "Retirement" +msgstr "Уход на Пенсию" + +#: const.py:267 +msgid "Will" +msgstr "Завещание" + +#: const.py:312 +msgid "Caste" +msgstr "Каста" + +#: const.py:314 +msgid "Identification Number" +msgstr "Идентификационный Номер" + +#: const.py:315 +msgid "National Origin" +msgstr "Национальное Происхождение" + +#: const.py:316 +msgid "Social Security Number" +msgstr "Номер Социальной Безопасности" + +#: const.py:355 +msgid "Number of Children" +msgstr "Количество Детей" + +#: const.py:391 +msgid "A legal or common-law relationship between a husband and wife" +msgstr "Законные или гражданские отношения между мужем и женой" + +#: const.py:392 +msgid "No legal or common-law relationship between man and woman" +msgstr "Никаких законных или гражданских отношений между мужчиной и женщиной" + +#: const.py:392 const.py:400 +msgid "Unmarried" +msgstr "Не Женаты" + +#: const.py:393 +msgid "An established relationship between members of the same sex" +msgstr "Устоявшиеся отношения между лицами одного пола" + +#: const.py:394 +msgid "Unknown relationship between a man and woman" +msgstr "Отношения между мужчиной и женщиной неизвестны" + +#: const.py:395 +msgid "An unspecified relationship between a man and woman" +msgstr "Отношения между мужчиной и женщиной не обозначены" + +#: const.py:419 +msgid "No definition available" +msgstr "Нет определения" + +#: const.py:860 +msgid "Also Known As" +msgstr "Он(а) же" + +#: const.py:861 +msgid "Birth Name" +msgstr "Фамилия при Рождении" + +#: const.py:862 +msgid "Married Name" +msgstr "Фамилия в Браке" + +#: const.py:863 +msgid "Other Name" +msgstr "Другая Фамилия" + +#: dialog.glade:18 dialog.glade:928 +msgid "Event Editor - GRAMPS" +msgstr "Редактор Событий - GRAMPS" + +#: dialog.glade:101 +msgid "Event Editor" +msgstr "Редактор Событий" + +#: dialog.glade:142 +msgid "Event Type" +msgstr "Тип События" + +#: dialog.glade:383 dialog.glade:903 +msgid "Edit source information for the highlighted event" +msgstr "Правка информации об источниках для выделенного события" + +#: dialog.glade:566 +msgid "Attribute Editor - GRAMPS" +msgstr "Редактор Атрибутов - GRAMPS" + +#: dialog.glade:649 +msgid "Attribute Editor" +msgstr "Редактор Атрибутов" + +#: dialog.glade:1079 gramps.glade:3117 places.glade:246 places.glade:689 +#: places.glade:1123 +msgid "County" +msgstr "Область/Район/Уезд" + +#: dialog.glade:1131 gramps.glade:3174 places.glade:220 places.glade:767 +#: places.glade:1136 +msgid "State" +msgstr "Государство/Республика" + +#: dialog.glade:1254 gramps.glade:3003 places.glade:597 places.glade:1001 +msgid "Church Parish" +msgstr "Церковный Приход" + +#: docgen/AbiWordDoc.py:325 +msgid "AbiWord" +msgstr "AbiWord" + +#: docgen/HtmlDoc.py:121 +msgid "The marker '' was not in the template" +msgstr "Отметка '' отсутствовала в образце" + +#: docgen/HtmlDoc.py:125 docgen/HtmlDoc.py:132 +msgid "" +"Could not open %s\n" +"Using the default template" +msgstr "" +"Не смогла открыть %s\n" +"Использую образец по умолчанию" + +#: docgen/HtmlDoc.py:322 plugins/eventcmp.glade:195 +msgid "HTML" +msgstr "HTML" + +#: docgen/KwordDoc.py:479 +msgid "KWord" +msgstr "KWord" + +#: docgen/LaTeXDoc.py:386 +msgid "LaTeX" +msgstr "LaTeX" + +#: docgen/OpenDrawDoc.py:449 docgen/OpenOfficeDoc.py:577 +msgid "OpenOffice/StarOffice 6" +msgstr "OpenOffice/StarOffice 6" + +#: docgen/PSDrawDoc.py:168 +msgid "PostScript" +msgstr "PostScript" + +#: docgen/PdfDoc.py:46 docgen/PdfDrawDoc.py:35 +msgid "Missing Libraries" +msgstr "Отсутствующие Библиотеки" + +#: docgen/PdfDoc.py:46 docgen/PdfDrawDoc.py:35 +msgid "The ReportLab modules are not installed" +msgstr "Модули ReportLab не установлены" + +#: docgen/PdfDoc.py:302 docgen/PdfDrawDoc.py:188 +msgid "PDF" +msgstr "PDF" + +#: docgen/RTFDoc.py:520 +msgid "Rich Text Format (RTF)" +msgstr "Rich Text Format (RTF)" + +#: docgen/SvgDrawDoc.py:129 +msgid "SVG (Scalable Vector Graphics)" +msgstr "SVG (Scalable Vector Graphics)" + +#: filters/After.py:56 +msgid "People with an event after ..." +msgstr "Лица с событиями после ..." + +#: filters/AltFam.py:36 +msgid "People who were adopted" +msgstr "Лица являющиеся приемными детьми" + +#: filters/Before.py:56 +msgid "People with an event before ..." +msgstr "Лица с событиями до ..." + +#: filters/Disconnected.py:40 plugins/Summary.py:99 +msgid "Disconnected individuals" +msgstr "Не связанные лица" + +#: filters/EventPlace.py:71 +msgid "People with an event location of ..." +msgstr "Лица с событиями произошедшими в месте ..." + +#: filters/EventType.py:41 +msgid "People who have an event type of ..." +msgstr "Лица с событиями типа ..." + +#: filters/Females.py:40 plugins/Summary.py:96 +msgid "Females" +msgstr "Женщины" + +#: filters/HavePhotos.py:39 +msgid "People who have images" +msgstr "Лица для которых есть изображения" + +#: filters/IncompleteNames.py:41 +msgid "People with incomplete names" +msgstr "Лица с неполными именами" + +#: filters/Males.py:40 plugins/Summary.py:95 +msgid "Males" +msgstr "Мужчины" + +#: filters/MatchSndEx.py:45 +msgid "Names with same SoundEx code as ..." +msgstr "Лица с таки же кодом SoundEx как ..." + +#: filters/MatchSndEx2.py:41 +msgid "Names with the specified SoundEx code" +msgstr "Лица с данным кодом SoundEx" + +#: filters/MatchSndEx2.py:42 plugins/soundex.glade:169 +msgid "SoundEx Code" +msgstr "Код SoundEx" + +#: filters/MutlipleMarriages.py:39 +msgid "People with multiple marriage records" +msgstr "Лица с несколькими брачными записями" + +#: filters/NeverMarried.py:39 +msgid "People with no marriage records" +msgstr "Лица без брачных записей" + +#: filters/NoBirthdate.py:39 +msgid "People without a birth date" +msgstr "Лица без даты рождения" + +#: filters/NoChildren.py:44 +msgid "People with children" +msgstr "Лица с детьми" + +#: filters/RegExMatch.py:52 +msgid "Names that match a regular expression" +msgstr "Имена удлвлетворяющие регулярному выражению" + +#: filters/RegExMatch.py:53 filters/SubString.py:42 srcsel.glade:533 +msgid "Text" +msgstr "Текст" + +#: filters/SubString.py:41 +msgid "Names that contain a substring" +msgstr "Имена содержащие подстроку" + +#: gramps.glade:35 gramps_main.py:661 gramps_main.py:725 preferences.glade:173 +msgid "GRAMPS" +msgstr "GRAMPS" + +#: gramps.glade:93 +msgid "_New File" +msgstr "_Новый Файл" + +#: gramps.glade:121 +msgid "Revert to last saved database" +msgstr "Откатить к последнему варианту сохраненной базы данных" + +#: gramps.glade:127 +msgid "_Revert" +msgstr "От_катить" + +#: gramps.glade:135 +msgid "_Import" +msgstr "_Импортировать" + +#: gramps.glade:153 +msgid "_Export" +msgstr "_Экспортировать" + +#: gramps.glade:165 +msgid "Reload Plugins" +msgstr "Перезагрузить Добавления" + +#: gramps.glade:192 +msgid "_Edit" +msgstr "_Правка" + +#: gramps.glade:212 +msgid "_Find..." +msgstr "_Найти" + +#: gramps.glade:225 +msgid "_Merge" +msgstr "_Слить" + +#: gramps.glade:249 +msgid "_People" +msgstr "_Люди" + +#: gramps.glade:261 +msgid "_Family" +msgstr "_Семья" + +#: gramps.glade:273 +msgid "Pe_digree" +msgstr "_Родословная" + +#: gramps.glade:285 +msgid "_Sources" +msgstr "_Источники" + +#: gramps.glade:297 +msgid "P_laces" +msgstr "_Места" + +#: gramps.glade:309 +msgid "_Media" +msgstr "Медиа-_Объекты" + +#: gramps.glade:318 +msgid "_Bookmarks" +msgstr "_Закладки" + +#: gramps.glade:338 +msgid "_Add Bookmark" +msgstr "_Добавить Закладку" + +#: gramps.glade:356 +msgid "_Edit Bookmarks" +msgstr "_Правка Закладок" + +#: gramps.glade:370 +msgid "Go to Bookmark" +msgstr "Иди к Закладке" + +#: gramps.glade:379 +msgid "_Reports" +msgstr "_Отчеты" + +#: gramps.glade:386 +msgid "_Tools" +msgstr "_Инструменты" + +#: gramps.glade:413 +msgid "Make the active person the default person" +msgstr "Сделать активное лицо лицом по умолчанию" + +#: gramps.glade:419 +msgid "_Default Person" +msgstr "_Лицо По Умолчанию" + +#: gramps.glade:443 +msgid "_User's Manual" +msgstr "_Руководство Пользователя" + +#: gramps.glade:456 +msgid "_Writing Extensions" +msgstr "_Написание Расширений" + +#: gramps.glade:469 +msgid "GRAMPS _Home Page" +msgstr "_Домашняя Страница GRAMPS" + +#: gramps.glade:477 +msgid "Subscribe to mailing lists or browse archives" +msgstr "Подписаться на списки рассылки или просмотреть архивы" + +#: gramps.glade:483 +msgid "GRAMPS _Mailing Lists" +msgstr "_Списка Рассылки GRAMPS" + +#: gramps.glade:491 +msgid "Report a bug to the GRAMPS bug tracking system" +msgstr "Послать сообщение об ошибке в систему отслеживания ошибок GRAMPS" + +#: gramps.glade:497 +msgid "_Report a bug" +msgstr "Сообщить об О_шибке" + +#: gramps.glade:504 +msgid "Shows the status of plugins that failed to load" +msgstr "Показывает стасус добавлений которые не смогли загрузиться" + +#: gramps.glade:510 +msgid "_Show Plugin Status" +msgstr "_Показать Стасус Добавления" + +#: gramps.glade:559 +msgid "Open File" +msgstr "Открыть Файл" + +#: gramps.glade:565 +msgid "Open" +msgstr "Открыть" + +#: gramps.glade:573 +msgid "Save File" +msgstr "Сохранить Файл" + +#: gramps.glade:579 +msgid "Save" +msgstr "Сохранить" + +#: gramps.glade:587 +msgid "Make the default person the active person" +msgstr "Сделать лицо по умолчанию активным лицом " + +#: gramps.glade:593 +msgid "Home" +msgstr "Домой" + +#: gramps.glade:601 +msgid "Display the list of people" +msgstr "Показать список лиц" + +#: gramps.glade:619 +msgid "Display active person's family relationships" +msgstr "Показать семейные отношения активного лица" + +#: gramps.glade:634 +msgid "Show active person's anscestors" +msgstr "Показать предков активного лица" + +#: gramps.glade:641 gramps.glade:2515 +msgid "Pedigree" +msgstr "Родословная" + +#: gramps.glade:649 +msgid "Display the list of sources" +msgstr "Показать список источников" + +#: gramps.glade:666 +msgid "Display the list of places" +msgstr "Показать список мест" + +#: gramps.glade:680 +msgid "Display the list of media objects" +msgstr "Показать список медиа-объектов" + +#: gramps.glade:686 gramps.glade:4227 +msgid "Media" +msgstr "Медиа" + +#: gramps.glade:694 +msgid "Generate reports" +msgstr "Генерировать Отчеты" + +#: gramps.glade:700 +msgid "Reports" +msgstr "Отчеты" + +#: gramps.glade:711 +msgid "Run a tool" +msgstr "Запустить инструмент" + +#: gramps.glade:717 +msgid "Tools" +msgstr "Инструменты" + +#: gramps.glade:866 +msgid "Show persons that do not match the filtering rule" +msgstr "Показать лица не удовлетворяющие правилу фильтра" + +#: gramps.glade:868 plugins/eventcmp.glade:791 plugins/eventcmp.glade:871 +msgid "Invert" +msgstr "Обратить" + +#: gramps.glade:1033 gramps.glade:2236 gramps.glade:2641 gramps.glade:2946 +#: gramps.glade:3742 gramps.glade:3989 gramps.glade:5466 imagesel.glade:613 +#: imagesel.glade:1507 imagesel.glade:2370 mergedata.glade:1013 +#: mergedata.glade:1725 plugins/relcalc.glade:170 srcsel.glade:778 +msgid "ID" +msgstr "ID Номер" + +#: gramps.glade:1161 gramps.glade:2350 gramps.glade:4938 gramps.glade:5133 +#: gramps.glade:5453 mergedata.glade:466 mergedata.glade:1232 +msgid "Birth Date" +msgstr "Дата рождения" + +#: gramps.glade:1218 mergedata.glade:492 mergedata.glade:1154 +msgid "Death Date" +msgstr "Дата Смерти" + +#: gramps.glade:1319 gramps.glade:6926 +msgid "Add Person" +msgstr "Добавить Лицо" + +#: gramps.glade:1333 +msgid "Edit/View Person" +msgstr "Правка/Просмотр Лица" + +#: gramps.glade:1347 +msgid "Delete Person" +msgstr "Уничтожить Лицо" + +#: gramps.glade:1398 +msgid "Active Person" +msgstr "Активное Лицо" + +#: gramps.glade:1481 +msgid "Exchange active person and displayed spouse" +msgstr "Поменять активное лицо с показанным супругом" + +#: gramps.glade:1562 +msgid "Relationship" +msgstr "Отношения" + +#: gramps.glade:1598 plugins/FamilyGroup.py:277 plugins/FamilyGroup.py:381 +#: plugins/test.py:277 plugins/test.py:381 +msgid "Spouse" +msgstr "Супруг" + +#: gramps.glade:1710 places.glade:1201 places.glade:1706 +msgid "Edit/View" +msgstr "Правка/Просмотр" + +#: gramps.glade:1820 +msgid "Make the current father the active person" +msgstr "Сделать текущего отца активным лицом" + +#: gramps.glade:1911 +msgid "Make the current mother the active person" +msgstr "Сделать текущую мать активным лицом" + +#: gramps.glade:1997 +msgid "Add/Edit/View" +msgstr "Добавить/Правка/Просмотр" + +#: gramps.glade:2022 plugins/FamilyGroup.py:311 plugins/IndivSummary.py:174 +#: plugins/WebPage.py:521 plugins/test.py:311 +msgid "Children" +msgstr "Дети" + +#: gramps.glade:2065 +msgid "Make the selected child the active person" +msgstr "Сделать выделенного ребенка активным лицом" + +#: gramps.glade:2115 +msgid "" +"Click column headers to sort. When sorted by birth date, drag and drop to " +"reorder children." +msgstr "" +"Кликните на заголовки колонок для сортировки. При сортировке \n" +"по дате рождения, упорядочьте детей посредством перетаскивания мышью." + +#: gramps.glade:2388 +msgid "Status" +msgstr "Статус" + +#: gramps.glade:2438 +msgid "Add Existing Children" +msgstr "Добавить Существующих Детей" + +#: gramps.glade:2452 gramps.glade:6443 +msgid "Add New Child" +msgstr "Добавить Нового Ребенка" + +#: gramps.glade:2466 +msgid "Remove Child" +msgstr "Удалить Ребенка" + +#: gramps.glade:2697 gramps.glade:6010 srcsel.glade:182 +msgid "Author" +msgstr "Автор" + +#: gramps.glade:2785 +msgid "Add Source" +msgstr "Добавить Источник" + +#: gramps.glade:2800 +msgid "Edit/View Source" +msgstr "Правка/Просмотр Источника" + +#: gramps.glade:2815 +msgid "Delete Source" +msgstr "Уничтожить Источник" + +#: gramps.glade:2890 +msgid "Place Name" +msgstr "Название Места" + +#: gramps.glade:3372 +msgid "Add Place" +msgstr "Добавить Место" + +#: gramps.glade:3387 +msgid "Edit/View Place" +msgstr "Правка/Просмотр Места" + +#: gramps.glade:3402 +msgid "Delete Place" +msgstr "Уничтожить Место" + +#: gramps.glade:3441 imagesel.glade:157 +msgid "Preview" +msgstr "Предварительный Просмотр" + +#: gramps.glade:3461 plugins/pafexport.glade:179 +msgid "Information" +msgstr "Информация" + +#: gramps.glade:3690 gramps.glade:4101 imagesel.glade:508 imagesel.glade:1585 +msgid "Path" +msgstr "Путь" + +#: gramps.glade:4202 +msgid "Edit Media Object" +msgstr "Правка Медиа-Объекта" + +#: gramps.glade:4266 +msgid "Select File - GRAMPS" +msgstr "Выбрать Файл - GRAMPS" + +#: gramps.glade:4287 +msgid "OK" +msgstr "OK" + +#: gramps.glade:4303 +msgid "Cancel" +msgstr "Отменить" + +#: gramps.glade:4311 +msgid "Choose Spouse - GRAMPS" +msgstr "Выбрать Супруга - GRAMPS" + +#: gramps.glade:4362 +msgid "Add new person" +msgstr "Добавить новое лицо" + +#: gramps.glade:4376 +msgid "Select existing person" +msgstr "Выделить существующее лицо" + +#: gramps.glade:4396 +msgid "Choose Spouse/Partner" +msgstr "Выбрать Супруга/Партнера" + +#: gramps.glade:4424 +msgid "Select existing person as spouse" +msgstr "Выделить существующее лицо в качестве супруга" + +#: gramps.glade:4476 plugins/relcalc.glade:183 +msgid "Birthdate" +msgstr "Дата Рождения" + +#: gramps.glade:4492 +msgid "Add new person as spouse" +msgstr "Добавить новое лицо в качестве супруга" + +#: gramps.glade:4642 marriage.glade:161 +msgid "Relationship Type" +msgstr "Тип Отношений" + +#: gramps.glade:4699 +msgid "Relationship definition" +msgstr "Определение Отношений" + +#: gramps.glade:4720 +msgid "Choose Parents - GRAMPS" +msgstr "Выбрать Родителей - GRAMPS" + +#: gramps.glade:4804 +msgid "Choose Parents" +msgstr "Выбрать Родителей" + +#: gramps.glade:4963 gramps.glade:5158 +msgid "Relationship to child" +msgstr "Отношение к ребенку" + +#: gramps.glade:5235 +msgid "Parent Relationship" +msgstr "Родительские Отношения" + +#: gramps.glade:5294 +msgid "Add Child - GRAMPS" +msgstr "Добавить Ребенка - GRAMPS" + +#: gramps.glade:5377 +msgid "Add Children" +msgstr "Добавить Детей" + +#: gramps.glade:5487 +msgid "Hide people not likely to be a child of this family" +msgstr "Спрятать лиц с малой вероятностью являющимися детьми в этой семье" + +#: gramps.glade:5514 gramps.glade:6484 +msgid "Relationship to Father" +msgstr "Отношение к Отцу" + +#: gramps.glade:5599 gramps.glade:6813 +msgid "Relationship to Mother" +msgstr "Отношение к Матери" + +#: gramps.glade:5676 +msgid "Marriage Editor - GRAMPS" +msgstr "Редактор Браков - GRAMPS" + +#: gramps.glade:5759 +msgid "Marriage Editor" +msgstr "Редактор Браков" + +#: gramps.glade:5787 +msgid "Edit marriage information" +msgstr "Правка брачной информации" + +#: gramps.glade:5802 +msgid "Add a new spouse" +msgstr "Добавить нового супруга" + +#: gramps.glade:5817 +msgid "Remove current spouse" +msgstr "Удалить текущего супруга" + +#: gramps.glade:5834 +msgid "Source Editor - GRAMPS" +msgstr "Редактор Источников - GRAMPS" + +#: gramps.glade:5924 +msgid "Source Editor" +msgstr "Редактор Источников" + +#: gramps.glade:6036 +msgid "Publication Info" +msgstr "Информация о Публикации" + +#: gramps.glade:6326 imagesel.glade:2398 places.glade:1761 +msgid "References" +msgstr "Ссылки" + +#: gramps.glade:6342 +msgid "Add New Child - GRAMPS" +msgstr "Добавить Нового Ребенка - GRAMPS" + +#: gramps.glade:6384 +msgid "Creates the new child and adds him or her as a child of the family" +msgstr "Создает нового ребенка и добавляет его/ее в семью в качестве ребенка" + +#: gramps.glade:6400 +msgid "" +"Adds the new person as a child of the family and displays the standard person " +"dialog to allow for more data to be entered" +msgstr "" +"Добавляет новое лицо в качестве ребенка в семью и выводит стандартный диалог " +"лица дла возможного ввода дополнительных данных" + +#: gramps.glade:6409 +msgid "Add Data" +msgstr "Добавить Данные" + +#: gramps.glade:7173 +msgid "Open a Database - GRAMPS" +msgstr "Открыть Базу Данных - GRAMPS" + +#: gramps.glade:7257 +msgid "Open a Database" +msgstr "Открыть Базу Данных" + +#: gramps.glade:7286 +msgid "Open an Existing Database" +msgstr "Открыть Существующую Базу Данных" + +#: gramps.glade:7302 +msgid "Create a New Database" +msgstr "Создать Новую Базу Данных" + +#: gramps_main.py:109 +msgid "" +"You are running GRAMPS as the 'root' user.\n" +"This account is not meant for normal application use." +msgstr "" +"Вы запустили GRAMPS будучи администратором системы (root).\n" +"Эта роль не предназначена для запуска обычных пользовательских программ." + +#: gramps_main.py:350 +msgid "Exactly two people must be selected to perform a merge" +msgstr "Ровно два лица должны быть выделены чтобы произвести слияние" + +#: gramps_main.py:370 +msgid "Unsaved changes exist in the current database\n" +msgstr "В используемой базе данных существуют несохраненные изменения\n" + +#: gramps_main.py:371 +msgid "Do you wish to save the changes?" +msgstr "Вы хотите сохранить изменения?" + +#: gramps_main.py:515 +msgid "Do you want to close the current database and create a new one?" +msgstr "Вы хотите закрыть текущую базу данных и создать новую?" + +#: gramps_main.py:631 +msgid "" +"An autosave file exists for %s.\n" +"Should this be loaded instead of the last saved version?" +msgstr "" +"Существует авто-сохраненный файл для %s.\n" +"Использовать его вместо последней сохраненной версии?" + +#: gramps_main.py:651 gramps_main.py:688 +msgid "%s is not a directory" +msgstr "%s не является каталогом" + +#: gramps_main.py:655 +msgid "Loading %s ..." +msgstr "Загружаю %s ..." + +#: gramps_main.py:681 +msgid "Saving %s ..." +msgstr "Сохраняю %s ..." + +#: gramps_main.py:742 +msgid "autosaving..." +msgstr "автоматически сохраняю..." + +#: gramps_main.py:745 +msgid "autosave complete" +msgstr "автоматическое сохранение сделано" + +#: gramps_main.py:747 +msgid "autosave failed" +msgstr "автоматическое сохранение не удалось" + +#: gramps_main.py:756 +msgid "You requested too many people to edit at the same time" +msgstr "Вы затребовали слишком много лиц для одновременной правки" + +#: gramps_main.py:785 +msgid "Do you really wish to delete %s?" +msgstr "Вы действительно хотите уничтожить %s?" + +#: gramps_main.py:789 +msgid "Currently, you can only delete one person at a time" +msgstr "В настоящий момент вы можете уничтожить только одно лицо за один раз" + +#: gramps_main.py:1089 +msgid "Invalid move. Children must be ordered by birth date." +msgstr "Невозможная операция. Дети должны быть упорядочены по дате рождения." + +#: gramps_main.py:1135 +msgid "" +"Do you wish to abandon your changes and revert to the last saved database?" +msgstr "" +"Вы хотите потерять ваши изменения и откатить к последней сохраненной базе " +"данных?" + +#: gramps_main.py:1138 +msgid "Cannot revert to a previous database, since one does not exist" +msgstr "Не могу откатить к предыдущей базе данных так как ее не существует" + +#: gramps_main.py:1738 +msgid "No default/home person has been set" +msgstr "Лицо по умолчанию не было выбрано" + +#: gramps_main.py:1743 +msgid "%s has been bookmarked" +msgstr "%s помечено закладкой" + +#: gramps_main.py:1756 +msgid "Do you wish to set %s as the home person?" +msgstr "Вы хотите выбрать %s в качестве лица по умолчанию?" + +#: imagesel.glade:18 +msgid "Select a Media Object - GRAMPS" +msgstr "Выбрать Медиа-Объект - GRAMPS" + +#: imagesel.glade:102 +msgid "Select a Media Object" +msgstr "Выбрать Медиа-Объект" + +#: imagesel.glade:209 plugins/gedcomimport.glade:77 +msgid "File" +msgstr "Файл" + +#: imagesel.glade:286 +msgid "Do not make a local copy" +msgstr "Не делать локальной копии" + +#: imagesel.glade:311 +msgid "Select an image" +msgstr "Выбрать изображение" + +#: imagesel.glade:355 +msgid "Change Local Media Object Properties - GRAMPS" +msgstr "Изменить Локальные Свойства Медиа-Объекта - GRAMPS" + +#: imagesel.glade:438 +msgid "Change Local Media Object Properties" +msgstr "Изменить Локальные Свойства Медиа-Объекта" + +#: imagesel.glade:665 imagesel.glade:1663 +msgid "Object Type" +msgstr "Тип Объекта" + +#: imagesel.glade:1244 +msgid "Creates a new object attribute from the above data" +msgstr "Создает новый атрибут объекта из вышеприведенных данных" + +#: imagesel.glade:1260 +msgid "Updates the selected object attribute with the above data" +msgstr "Обновляет выделенный атрибут объекта используя вышеприведенные данные" + +#: imagesel.glade:1311 +msgid "Change Global Media Object Properties - GRAMPS" +msgstr "Изменить Глобальные Свойства Медиа-Объекта - GRAMPS" + +#: imagesel.glade:1408 +msgid "Change Global Media Object Properties" +msgstr "Изменить Глобальные Свойства Медиа-Объекта" + +#: imagesel.glade:1486 +msgid "General Information" +msgstr "Общая Информация" + +#: imagesel.glade:1843 +msgid "Copies the object into the database" +msgstr "Копирует объект в базу данных" + +#: imagesel.glade:1850 +msgid "Make Local Copy" +msgstr "Сделать Локальную Копию" + +#: imagesel.glade:2245 +msgid "Creates a new attribute from the above data" +msgstr "Создает новый атрибут из вышеприведенных данных" + +#: imagesel.glade:2261 +msgid "Updates the selected attribute with the above data" +msgstr "Обновляет выделенный атрибут используя вышеприведенные данные" + +#: marriage.glade:23 +msgid "Marriage/Relationship Editor - GRAMPS" +msgstr "Редактор Браков/Отношений - GRAMPS" + +#: marriage.glade:109 +msgid "Marriage/Relationship Editor" +msgstr "Редактор Браков/Отношений" + +#: marriage.glade:897 +msgid "Add new event for this marriage" +msgstr "Добавить новые события для данного брака" + +#: marriage.glade:913 +msgid "Modify the selected event" +msgstr "Изменить выделенное событие" + +#: marriage.glade:929 +msgid "Delete selected event" +msgstr "Уничтожить выделенное событие" + +#: marriage.glade:1308 +msgid "Create a new attribute for this marriage" +msgstr "Создать новый атрибут для данного брака" + +#: marriage.glade:1324 +msgid "Modify the selected attribute" +msgstr "Изменить выделенный атрибут" + +#: marriage.glade:1538 +#, fuzzy +msgid "Spouse Sealing" +msgstr "" + +#: mergedata.glade:19 +msgid "Merge Places - GRAMPS" +msgstr "Слить Места - GRAMPS" + +#: mergedata.glade:102 +msgid "Select the title for the merged place" +msgstr "Выбрать название для объединенного места" + +#: mergedata.glade:220 +msgid "Place 1" +msgstr "Место 1" + +#: mergedata.glade:244 +msgid "Place 2" +msgstr "Место 2" + +#: mergedata.glade:295 plugins/merge.glade:18 plugins/merge.glade:298 +msgid "Merge People - GRAMPS" +msgstr "Слить Людей - GRAMPS" + +#: mergedata.glade:345 +msgid "Merge and Close" +msgstr "Слить и Закрыть" + +#: mergedata.glade:359 +msgid "Merge and Edit" +msgstr "Слияние и Правка" + +#: mergedata.glade:392 plugins/merge.glade:380 +msgid "Merge People" +msgstr "Слить Людей" + +#: mergedata.glade:421 +msgid "First Person" +msgstr "Первое Лицо" + +#: mergedata.glade:570 mergedata.glade:1206 +msgid "Birth Place" +msgstr "Место Рождения" + +#: mergedata.glade:596 mergedata.glade:1258 +msgid "Death Place" +msgstr "Место Смерти" + +#: mergedata.glade:877 mergedata.glade:1452 +msgid "Spouses" +msgstr "Супруги" + +#: mergedata.glade:1133 +msgid "Second Person" +msgstr "Второе Лицо" + +#: mergedata.glade:1885 +msgid "Keep other name as an alternate name" +msgstr "Сохранить другое имя в качестве альтернативного имени" + +#: mergedata.glade:1899 +msgid "Keep other birth event as an alternate birth event" +msgstr "" +"Сохранить другое событие рождения в качестве альтернативного события рождения" + +#: mergedata.glade:1913 +msgid "Keep other death event as an alternate death event" +msgstr "" +"Сохранить другое событие смерти в качестве альтернативного события смерти" + +#: places.glade:20 +msgid "Place Editor - GRAMPS" +msgstr "Редактор Мест - GRAMPS" + +#: places.glade:108 +msgid "Place Editor" +msgstr "Редактор Мест" + +#: places.glade:298 +msgid "Longitude" +msgstr "Долгота" + +#: places.glade:324 +msgid "Latitude" +msgstr "Широта" + +#: places.glade:576 +msgid "Select" +msgstr "Выбрать" + +#: places.glade:668 places.glade:1226 +msgid "Other Names" +msgstr "Другие Имена" + +#: plugins.glade:18 +msgid "Report Selection - GRAMPS" +msgstr "Выбор Отчета - GRAMPS" + +#: plugins.glade:213 +msgid "Select a report from those available on the left." +msgstr "Выбрать отчет из доступных слева" + +#: plugins.glade:242 +msgid "Report Status" +msgstr "Статус Отчета" + +#: plugins.glade:281 +msgid "Plugin Status - GRAMPS" +msgstr "Статус Добавлений - GRAMPS" + +#: plugins/AncestorChart.py:132 plugins/AncestorChart.py:151 +msgid "Document write failure" +msgstr "Ошибка Записи Документа" + +#: plugins/AncestorChart.py:258 plugins/AncestorChart.py:389 +msgid "Ancestor Chart" +msgstr "Карта Предков" + +#: plugins/AncestorChart.py:258 plugins/AncestorChart.py:390 +#: plugins/DesGraph.py:311 plugins/DesGraph.py:427 plugins/GraphViz.py:130 +#: plugins/GraphViz.py:289 +msgid "Graphical Reports" +msgstr "Графические Отчеты" + +#: plugins/AncestorChart.py:262 +msgid "Ancestor Chart for %s" +msgstr "Карта Предков для %s" + +#: plugins/AncestorChart.py:267 +msgid "Save Ancestor Chart" +msgstr "Сохранить Карту Предков" + +#: plugins/AncestorChart.py:279 plugins/DesGraph.py:328 +msgid "Display Format" +msgstr "Формат дисплея" + +#: plugins/AncestorChart.py:280 plugins/DesGraph.py:329 +msgid "Allows you to customize the data in the boxes in the report" +msgstr "Позволяет вам настроить данные в рамках в отчете" + +#: plugins/AncestorChart.py:391 plugins/AncestorReport.py:375 +#: plugins/DescendReport.py:276 plugins/DetAncestralReport.py:607 +#: plugins/FamilyGroup.py:460 plugins/GraphViz.py:288 +#: plugins/IndivSummary.py:431 plugins/Summary.py:133 plugins/WebPage.py:1070 +#: plugins/test.py:460 +msgid "Beta" +msgstr "Бета" + +#: plugins/AncestorChart.py:392 +msgid "Produces a graphical ancestral tree graph" +msgstr "Производит граф дерева предков" + +#: plugins/AncestorReport.py:59 plugins/DetAncestralReport.py:60 +msgid "Could not open %s" +msgstr "Не смогла открыть %s" + +#: plugins/AncestorReport.py:87 plugins/AncestorReport.py:242 +msgid "Ahnentafel Report for %s" +msgstr "Таблица Предков для %s" + +#: plugins/AncestorReport.py:100 plugins/DetAncestralReport.py:422 +msgid "%s Generation" +msgstr "%s Поколение" + +#: plugins/AncestorReport.py:129 +msgid "%s was born on %s in %s. " +msgstr "%s родился(лась) %s в %s. " + +#: plugins/AncestorReport.py:132 +msgid "%s was born on %s. " +msgstr "%s родился(лась) %s. " + +#: plugins/AncestorReport.py:136 +msgid "%s was born in the year %s in %s. " +msgstr "%s родился(лась) в %s году в %s. " + +#: plugins/AncestorReport.py:139 +msgid "%s was born in the year %s. " +msgstr "%s родился(лась) в %s году. " + +#: plugins/AncestorReport.py:164 +msgid "He died on %s in %s" +msgstr "Он умер %s in %s" + +#: plugins/AncestorReport.py:167 +msgid "He died on %s" +msgstr "Он умер %s" + +#: plugins/AncestorReport.py:170 +msgid "She died on %s in %s" +msgstr "Она умерла %s in %s" + +#: plugins/AncestorReport.py:173 +msgid "She died on %s" +msgstr "Она умерла %s" + +#: plugins/AncestorReport.py:177 +msgid "He died in the year %s in %s" +msgstr "Он умер в %s году в %s" + +#: plugins/AncestorReport.py:180 +msgid "He died in the year %s" +msgstr "Он умер в %s году" + +#: plugins/AncestorReport.py:183 +msgid "She died in the year %s in %s" +msgstr "Она умерла в %s году в %s" + +#: plugins/AncestorReport.py:186 +msgid "She died in the year %s" +msgstr "Она умерла в %s году" + +#: plugins/AncestorReport.py:199 +msgid ", and was buried on %s in %s." +msgstr "и был(а) похоронен(а) %s в %s." + +#: plugins/AncestorReport.py:202 +msgid ", and was buried on %s." +msgstr "и был(а) похоронен(а) %s." + +#: plugins/AncestorReport.py:206 +msgid ", and was buried in the year %s in %s." +msgstr "и был(а) похоронен(а) в %s году в %s." + +#: plugins/AncestorReport.py:209 +msgid ", and was buried in the year %s." +msgstr "и был(а) похоронен(а) в %s году." + +#: plugins/AncestorReport.py:212 +msgid " and was buried in %s." +msgstr "и был(а) похоронен(а) в %s." + +#: plugins/AncestorReport.py:238 plugins/AncestorReport.py:373 +msgid "Ahnentafel Report" +msgstr "Таблица Предков" + +#: plugins/AncestorReport.py:238 plugins/AncestorReport.py:374 +#: plugins/DescendReport.py:143 plugins/DescendReport.py:275 +#: plugins/DetAncestralReport.py:608 plugins/FamilyGroup.py:338 +#: plugins/FamilyGroup.py:459 plugins/IndivSummary.py:332 +#: plugins/IndivSummary.py:432 plugins/test.py:338 plugins/test.py:459 +msgid "Text Reports" +msgstr "Текстовые Отчеты" + +#: plugins/AncestorReport.py:247 plugins/DetAncestralReport.py:463 +msgid "Save Ancestor Report" +msgstr "Сохранить Отчеты о Предках" + +#: plugins/AncestorReport.py:376 +msgid "Produces a textual ancestral report" +msgstr "Производит текстовый отчет о предках" + +#: plugins/ChangeTypes.py:76 +msgid "1 event record was modified" +msgstr "Была изменена 1 событийная запись" + +#: plugins/ChangeTypes.py:78 +msgid "%d event records were modified" +msgstr "Было изменено %d событийных записей" + +#: plugins/ChangeTypes.py:92 +msgid "Rename personal event types" +msgstr "Переименовать типы личных событий" + +#: plugins/ChangeTypes.py:93 plugins/Check.py:222 plugins/Merge.py:524 +#: plugins/PatchNames.py:120 plugins/ReorderIds.py:106 +msgid "Database Processing" +msgstr "Обработка Базы Данных" + +#: plugins/ChangeTypes.py:94 +msgid "Allows all the events of a certain name to be renamed to a new name" +msgstr "" +"Разрешить переименование всех событий с определенным именем в другое имя" + +#: plugins/Check.py:164 +msgid "No errors were found" +msgstr "Ошибки не найдены" + +#: plugins/Check.py:170 +msgid "1 broken family link was fixed\n" +msgstr "Была восстановлена 1 нарушенная семейная связь\n" + +#: plugins/Check.py:172 +msgid "%d broken family links were found\n" +msgstr "Было восстановлено %d нарушенных семейных связей\n" + +#: plugins/Check.py:185 +msgid "%s was removed from the family of %s\n" +msgstr "%s был(а) удален(а) из семьи %s\n" + +#: plugins/Check.py:187 +msgid "1 empty family was found\n" +msgstr "Была найдена 1 пустая семья\n" + +#: plugins/Check.py:189 +msgid "%d empty families were found\n" +msgstr "Было найдено %d пустых семей\n" + +#: plugins/Check.py:191 +msgid "1 corrupted family relationship fixed\n" +msgstr "Поправлено 1 нарушенное семейное отношение\n" + +#: plugins/Check.py:193 +msgid "%d corrupted family relationship fixed\n" +msgstr "Поправлено %d нарушенных семейных отношений\n" + +#: plugins/Check.py:195 +msgid "1 media object was referenced, but not found\n" +msgstr "Не найден 1 из медиа-объектов с актовной ссылкой\n" + +#: plugins/Check.py:197 +msgid "%d media objects were referenced, but not found\n" +msgstr "Не найдено %d медиа-объектов с активными ссылками\n" + +#: plugins/Check.py:205 +msgid "Check Integrity" +msgstr "Проверить Целостность" + +#: plugins/Check.py:221 +msgid "Check and repair database" +msgstr "Проверить и починить базу данных" + +#: plugins/Check.py:223 +msgid "" +"Checks the database for integrity problems, fixing the problems that it can" +msgstr "" +"Проверяет базу данных на предмет целостности, поправляя ошибки по мере " +"возможности" + +#: plugins/DesGraph.py:311 plugins/DesGraph.py:426 +msgid "Descendant Graph" +msgstr "Граф Потомков" + +#: plugins/DesGraph.py:314 +msgid "Descendant Graph for %s" +msgstr "Граф Потомков для %s" + +#: plugins/DesGraph.py:317 +msgid "Save Descendant Graph" +msgstr "Сохранить Граф Потомков" + +#: plugins/DesGraph.py:428 plugins/DescendReport.py:277 +msgid "Generates a list of descendants of the active person" +msgstr "Генерирует список потомков активного лица" + +#: plugins/DesGraph.py:429 +msgid "Alpha" +msgstr "Альфа" + +#: plugins/Desbrowser.py:92 +msgid "Interactive descendant browser" +msgstr "Интерактивный просмотр потомков" + +#: plugins/Desbrowser.py:93 plugins/EventCmp.py:520 +msgid "Analysis and Exploration" +msgstr "Анализ и Исследование" + +#: plugins/Desbrowser.py:94 +msgid "Provides a browsable hierarchy based on the active person" +msgstr "Предоставляет просматриваемую иерархию основанную на активном лице" + +#: plugins/DescendReport.py:96 plugins/WriteGedcom.py:428 +#: plugins/WriteGedcomXML.py:430 plugins/WritePafPalm.py:571 +msgid "Descendants of %s" +msgstr "Потомки %s" + +#: plugins/DescendReport.py:143 plugins/DescendReport.py:274 +msgid "Descendant Report" +msgstr "Отчет о Потомках" + +#: plugins/DescendReport.py:147 +msgid "Descendant Report for %s" +msgstr "Отчет о Потомках для %s" + +#: plugins/DescendReport.py:152 +msgid "Save Descendant Report" +msgstr "Сохраниить Отчет о Потомках" + +#: plugins/DetAncestralReport.py:89 +msgid "Child of %s and %s is:" +msgstr "Ребенок %s и %s:" + +#: plugins/DetAncestralReport.py:90 +msgid "Children of %s and %s are:" +msgstr "Дети %s и %s:" + +#: plugins/DetAncestralReport.py:100 +msgid " Born: " +msgstr " Рожден(а): " + +#: plugins/DetAncestralReport.py:107 +msgid " Died: " +msgstr " Умер(ла) " + +#: plugins/DetAncestralReport.py:123 plugins/DetAncestralReport.py:311 +#: plugins/DetAncestralReport.py:370 +msgid "He" +msgstr "Он" + +#: plugins/DetAncestralReport.py:125 plugins/DetAncestralReport.py:313 +#: plugins/DetAncestralReport.py:372 +msgid "She" +msgstr "Она" + +#: plugins/DetAncestralReport.py:144 +msgid "Notes for %s" +msgstr "Записки для %s" + +#: plugins/DetAncestralReport.py:177 +msgid " was born on %s in %s." +msgstr " родился(лась) %s в %s." + +#: plugins/DetAncestralReport.py:179 +msgid " was born on %s." +msgstr " родился(лась) %s." + +#: plugins/DetAncestralReport.py:181 +msgid " was born in the year %s in %s." +msgstr " родился(лась) в %s году в %s." + +#: plugins/DetAncestralReport.py:184 +msgid " was born in the year %s." +msgstr " родился(лась) в %s году." + +#: plugins/DetAncestralReport.py:186 +msgid " in %s." +msgstr " в %s." + +#: plugins/DetAncestralReport.py:188 plugins/DetAncestralReport.py:191 +msgid "." +msgstr "." + +#: plugins/DetAncestralReport.py:221 +msgid " %s died on %s in %s" +msgstr " %s умер(ла) %s в %s" + +#: plugins/DetAncestralReport.py:222 +msgid " %s died on %s" +msgstr " %s умер(ла) %s" + +#: plugins/DetAncestralReport.py:225 +msgid " %s died in %s in %s" +msgstr " %s умер(ла) в %s в %s" + +#: plugins/DetAncestralReport.py:226 plugins/DetAncestralReport.py:228 +msgid " %s died in %s" +msgstr " %s умер(ла) в %s" + +#: plugins/DetAncestralReport.py:257 +msgid " And %s was buried on %s in %s." +msgstr " И %s был(а) похоронен(а) %s в %s." + +#: plugins/DetAncestralReport.py:259 +msgid " And %s was buried on %s." +msgstr " И %s был(а) похоронен(а) %s." + +#: plugins/DetAncestralReport.py:261 +msgid " And %s was buried in %s." +msgstr " И %s был(а) похоронен(а) в %s." + +#: plugins/DetAncestralReport.py:281 +msgid " %s was the son of %s and %s." +msgstr " %s был сыном %s и %s." + +#: plugins/DetAncestralReport.py:284 plugins/DetAncestralReport.py:287 +msgid " %s was the son of %s." +msgstr " %s был сыном %s." + +#: plugins/DetAncestralReport.py:292 +msgid " %s was the daughter of %s and %s." +msgstr " %s была дочерью %s и %s." + +#: plugins/DetAncestralReport.py:295 plugins/DetAncestralReport.py:298 +msgid " %s was the daughter of %s." +msgstr " %s была дочерью %s." + +#: plugins/DetAncestralReport.py:338 +msgid " %s married %s." +msgstr " %s женился на (вышла замуж за) %s." + +#: plugins/DetAncestralReport.py:340 +msgid " %s married %s in %s." +msgstr " %s женился на (вышла замуж за) %s в %s." + +#: plugins/DetAncestralReport.py:342 +msgid " %s married %s on %s." +msgstr " %s женился на (вышла замуж за) %s %s." + +#: plugins/DetAncestralReport.py:343 +msgid " %s married %s on %s in %s." +msgstr " %s женился на (вышла замуж за) %s %sв %s." + +#: plugins/DetAncestralReport.py:347 +msgid " %s married." +msgstr " %s женился (вышла замуж)." + +#: plugins/DetAncestralReport.py:349 +msgid " %s married in %s." +msgstr " %s женился (вышла замуж) в %s." + +#: plugins/DetAncestralReport.py:351 +msgid " %s married on %s." +msgstr " %s женился (вышла замуж) %s." + +#: plugins/DetAncestralReport.py:352 +msgid " %s married on %s in %s." +msgstr " %s женился (вышла замуж) %s в %s." + +#: plugins/DetAncestralReport.py:408 plugins/DetAncestralReport.py:458 +msgid "Detailed Ancestral Report for %s" +msgstr "Подробный Отчет о Предках для %s" + +#: plugins/DetAncestralReport.py:454 +msgid "Gramps - Ahnentafel Report" +msgstr "Gramps - Таблица Предков" + +#: plugins/DetAncestralReport.py:606 +msgid "Detailed Ancestral Report" +msgstr "Подробный Отчет о Предках" + +#: plugins/DetAncestralReport.py:609 +msgid "Produces a detailed ancestral report" +msgstr "Производит подробный отчет о предках" + +#: plugins/DetAncestralReport.py:712 +msgid " at the age of %d %s" +msgstr " в возрасте %d %s" + +#: plugins/EventCmp.py:180 +msgid "No matches were found" +msgstr "Не найдено соответствий" + +#: plugins/EventCmp.py:519 +msgid "Compare individual events" +msgstr "Сравнить инливилуальные события" + +#: plugins/EventCmp.py:521 +msgid "" +"Aids in the analysis of data by allowing the development of custom filters " +"that can be applied to the database to find similar events" +msgstr "" +"Помогает в анализе данных путем обеспечения разработки специальных фильтров " +"которые могут быть применены к базе данных для поиска сходных событий" + +#: plugins/FamilyGroup.py:109 plugins/FamilyGroup.py:338 +#: plugins/FamilyGroup.py:458 plugins/test.py:109 plugins/test.py:338 +msgid "Family Group Report" +msgstr "Отчет о Семейной Группе" + +#: plugins/FamilyGroup.py:118 plugins/test.py:118 +msgid "Husband" +msgstr "Муж" + +#: plugins/FamilyGroup.py:120 plugins/test.py:120 +msgid "Wife" +msgstr "Жена" + +#: plugins/FamilyGroup.py:342 plugins/test.py:342 +msgid "Family Group Report for %s" +msgstr "Отчет о Семейной Группе для %s" + +#: plugins/FamilyGroup.py:347 plugins/test.py:347 +msgid "Save Family Group Report" +msgstr "Сохранить Отчет о Семейной Группе" + +#: plugins/FamilyGroup.py:369 plugins/test.py:369 +msgid "No known marriages" +msgstr "Нет известных браков" + +#: plugins/FamilyGroup.py:461 plugins/test.py:461 +msgid "" +"Creates a family group report, showing information on a set of parents and " +"their children." +msgstr "" +"Создает отчет о семейной группе показывающий информацию о нескольких " +"родителях и их детях" + +#: plugins/Graph.py:209 +msgid "Quit" +msgstr "Выход" + +#: plugins/GraphViz.py:98 plugins/WebPage.py:644 +msgid "Ancestors" +msgstr "Предки" + +#: plugins/GraphViz.py:99 plugins/WebPage.py:645 +msgid "Descendants" +msgstr "Потомки" + +#: plugins/GraphViz.py:100 +msgid "Ancestors and Descendants" +msgstr "Предки и Потомки" + +#: plugins/GraphViz.py:101 plugins/WriteGedcom.py:419 +#: plugins/WriteGedcomXML.py:421 plugins/WritePafPalm.py:562 +msgid "Entire Database" +msgstr "Вся база данных" + +#: plugins/GraphViz.py:109 plugins/GraphViz.py:139 +msgid "Single (scaled)" +msgstr "Одинокий(ая) (масштабированный)" + +#: plugins/GraphViz.py:110 +msgid "Single" +msgstr "Одинокий(ая)" + +#: plugins/GraphViz.py:111 +msgid "Multiple" +msgstr "Множественный" + +#: plugins/GraphViz.py:130 plugins/GraphViz.py:287 +msgid "Relationship Graph" +msgstr "Граф Отношений" + +#: plugins/GraphViz.py:135 +msgid "Graphviz File" +msgstr "Graphviz Файл" + +#: plugins/GraphViz.py:272 +msgid "Generates relationship graphs, currently only in GraphViz format." +msgstr "" +"Генерирует граф отношений, в настоящий момент только в формате GraphViz." + +#: plugins/GraphViz.py:274 +msgid "" +"GraphViz (dot) can transform the graph into postscript, jpeg, png, vrml, svg, " +"and many other formats." +msgstr "" +"GraphViz (точка) модет преобразовать граф в форматы postscript, jpeg, png, " +"vrml, svg и многие другие форматы." + +#: plugins/GraphViz.py:276 +msgid "" +"For more information or to get a copy of GraphViz, goto " +"http://www.graphviz.org" +msgstr "" +"Для дополнительной информации или чтобы получить копию GraphViz, посетите " +"http://www.graphviz.org" + +#: plugins/IndivSummary.py:145 plugins/WebPage.py:484 +msgid "Marriages/Children" +msgstr "Браки/Дети" + +#: plugins/IndivSummary.py:203 plugins/WebPage.py:89 plugins/WebPage.py:212 +msgid "Summary of %s" +msgstr "Итоги для %s" + +#: plugins/IndivSummary.py:243 plugins/WebPage.py:238 +msgid "Male" +msgstr "Мужчина" + +#: plugins/IndivSummary.py:245 plugins/WebPage.py:240 +msgid "Female" +msgstr "Женщина" + +#: plugins/IndivSummary.py:302 +msgid "Individual Facts" +msgstr "Индивидуальные Факты" + +#: plugins/IndivSummary.py:332 plugins/IndivSummary.py:430 +msgid "Individual Summary" +msgstr "Индивидуальные Итоги" + +#: plugins/IndivSummary.py:336 +msgid "Individual Summary for %s" +msgstr "Индивидуальные Итоги для %s" + +#: plugins/IndivSummary.py:341 +msgid "Save Individual Summary" +msgstr "Сохранить Индивидуальные Итоги" + +#: plugins/IndivSummary.py:433 +msgid "Produces a detailed report on the selected person." +msgstr "Производит подробный отчет по выделенному лицу." + +#: plugins/Merge.py:92 +msgid "Medium" +msgstr "Средняя" + +#: plugins/Merge.py:523 +msgid "Find possible duplicate people" +msgstr "Найти возможные дубликаты лиц" + +#: plugins/Merge.py:525 +msgid "" +"Searches the entire database, looking for individual entries that may " +"represent the same person." +msgstr "" +"Просматривает всю базу данных в поиске индивидуальных единиц которые могут " +"представять одно лицо." + +#: plugins/PatchNames.py:74 +msgid "%s will be extracted as a nickname from %s\n" +msgstr "%s будет выделено из %s в качестве краткого имени\n" + +#: plugins/PatchNames.py:78 +msgid "%s will be extracted as a title from %s\n" +msgstr "%s будет выделено из %s в качестве титула\n" + +#: plugins/PatchNames.py:91 +msgid "No titles or nicknames were found" +msgstr "Титулы или краткие имена не были найдены" + +#: plugins/PatchNames.py:119 +msgid "Extract information from names" +msgstr "Выделить информацию из имен" + +#: plugins/PatchNames.py:121 +msgid "" +"Searches the entire database and attempts to extract titles and nicknames " +"that may be embedded in a person's given name field." +msgstr "" +"Просматривает всю базу данных и пытается выделить титулы и краткие имена " +"возможно содержащиеся в имени лица." + +#: plugins/ReadGedcom.py:230 plugins/ReadGedcom.py:241 +msgid "Warning: line %d was not understood, so it was ignored." +msgstr "" +"Предупреждение: строка %d не была распознана, поэтому она игнорируется." + +#: plugins/ReadGedcom.py:1671 plugins/ReadGedcom.py:1697 +msgid "Import from GEDCOM" +msgstr "Импорт из GEDCOM" + +#: plugins/ReadNative.py:58 plugins/ReadNative.py:82 +msgid "Import from GRAMPS" +msgstr "Импорт из GRAMPS" + +#: plugins/RelCalc.py:60 +msgid "%(p1)s is the first cousin of %(p2)s." +msgstr "%(p1)s является двоюродным(ой) братом/сестрой %(p2)s." + +#: plugins/RelCalc.py:63 +msgid "%(p1)s is the first cousin once removed of %(p2)s." +msgstr "" + +#: plugins/RelCalc.py:66 +msgid "%(p1)s is the first cousin twice removed of %(p2)s." +msgstr "" + +#: plugins/RelCalc.py:69 +msgid "%(p1)s is the first cousin %(removed)d times removed of %(p2)s." +msgstr "" + +#: plugins/RelCalc.py:73 +msgid "%(p1)s is the second cousin of %(p2)s." +msgstr "%(p1)s является троюродным(ой) братом/сестрой %(p2)s." + +#: plugins/RelCalc.py:76 +msgid "%(p1)s is the second cousin once removed of %(p2)s." +msgstr "" + +#: plugins/RelCalc.py:79 +msgid "%(p1)s is the second cousin twice removed of %(p2)s." +msgstr "" + +#: plugins/RelCalc.py:82 +msgid "%(p1)s is the second cousin %(removed)d times removed of %(p2)s." +msgstr "" + +#: plugins/RelCalc.py:86 +msgid "%(p1)s is the third cousin of %(p2)s." +msgstr "%(p1)s является четвероюродным(ой) братом/сестрой %(p2)s." + +#: plugins/RelCalc.py:89 +msgid "%(p1)s is the third cousin once removed of %(p2)s." +msgstr "" + +#: plugins/RelCalc.py:92 +msgid "%(p1)s is the third cousin twice removed of %(p2)s." +msgstr "" + +#: plugins/RelCalc.py:95 +msgid "%(p1)s is the third cousin %(removed)d times removed of %(p2)s." +msgstr "" + +#: plugins/RelCalc.py:99 +msgid "%(p1)s is the %(level)dth cousin of %(p2)s." +msgstr "%(p1)s является %(level)d-юродным(ой) братом/сестрой %(p2)s." + +#: plugins/RelCalc.py:102 +msgid "%(p1)s is the %(level)dth cousin once removed of %(p2)s." +msgstr "" + +#: plugins/RelCalc.py:105 +msgid "%(p1)s is the %(level)dth cousin twice removed of %(p2)s." +msgstr "" + +#: plugins/RelCalc.py:108 +msgid "%(p1)s is the %(level)dth cousin %(removed)d times removed of %(p2)s." +msgstr "" + +#: plugins/RelCalc.py:113 +msgid "%(p1)s is the father of %(p2)s." +msgstr "%(p1)s является отцом %(p2)s." + +#: plugins/RelCalc.py:116 +msgid "%(p1)s is the grandfather of %(p2)s." +msgstr "%(p1)s является дедом %(p2)s." + +#: plugins/RelCalc.py:119 +msgid "%(p1)s is the great grandfather of %(p2)s." +msgstr "%(p1)s является прадедом %(p2)s." + +#: plugins/RelCalc.py:122 +msgid "%(p1)s is the second great grandfather of %(p2)s." +msgstr "%(p1)s является прапрадедом %(p2)s." + +#: plugins/RelCalc.py:125 +msgid "%(p1)s is the third great grandfather of %(p2)s." +msgstr "%(p1)s является прапрапрадедом %(p2)s." + +#: plugins/RelCalc.py:128 +msgid "%(p1)s is the %(level)dth great grandfather of %(p2)s." +msgstr "%(p1)s является %(level)d-прадедом %(p2)s." + +#: plugins/RelCalc.py:133 +msgid "%(p1)s is the son of %(p2)s." +msgstr "%(p1)s является сыном %(p2)s." + +#: plugins/RelCalc.py:136 +msgid "%(p1)s is the grandson of %(p2)s." +msgstr "%(p1)s является внуком %(p2)s." + +#: plugins/RelCalc.py:139 +msgid "%(p1)s is the great grandson of %(p2)s." +msgstr "%(p1)s является правнуком %(p2)s." + +#: plugins/RelCalc.py:142 +msgid "%(p1)s is the second great grandson of %(p2)s." +msgstr "%(p1)s является праправнуком %(p2)s." + +#: plugins/RelCalc.py:145 +msgid "%(p1)s is the third great grandson of %(p2)s." +msgstr "%(p1)s является прапраправнуком %(p2)s." + +#: plugins/RelCalc.py:148 +msgid "%(p1)s is the %(level)dth great grandson of %(p2)s." +msgstr "%(p1)s является %(level)d-правнуком %(p2)s." + +#: plugins/RelCalc.py:153 +msgid "%(p1)s is the mother of %(p2)s." +msgstr "%(p1)s является матерью %(p2)s." + +#: plugins/RelCalc.py:156 +msgid "%(p1)s is the grandmother of %(p2)s." +msgstr "%(p1)s является бабушкой %(p2)s." + +#: plugins/RelCalc.py:159 +msgid "%(p1)s is the great grandmother of %(p2)s." +msgstr "%(p1)s является прабабушкой %(p2)s." + +#: plugins/RelCalc.py:162 +msgid "%(p1)s is the second great grandmother of %(p2)s." +msgstr "%(p1)s является прапрабабушкой %(p2)s." + +#: plugins/RelCalc.py:165 +msgid "%(p1)s is the third great grandmother of %(p2)s." +msgstr "%(p1)s является прапрапрабабушкой %(p2)s." + +#: plugins/RelCalc.py:168 +msgid "%(p1)s is the %(level)dth great grandmother of %(p2)s." +msgstr "%(p1)s является %(level)d-прабабушкой %(p2)s." + +#: plugins/RelCalc.py:173 +msgid "%(p1)s is the daughter of %(p2)s." +msgstr "%(p1)s является дочерью %(p2)s." + +#: plugins/RelCalc.py:176 +msgid "%(p1)s is the granddaughter of %(p2)s." +msgstr "%(p1)s является внучкой %(p2)s." + +#: plugins/RelCalc.py:179 +msgid "%(p1)s is the great granddaughter of %(p2)s." +msgstr "%(p1)s является правнучкой %(p2)s." + +#: plugins/RelCalc.py:182 +msgid "%(p1)s is the second great granddaughter of %(p2)s." +msgstr "%(p1)s является праправнучкой %(p2)s." + +#: plugins/RelCalc.py:185 +msgid "%(p1)s is the third great granddaughter of %(p2)s." +msgstr "%(p1)s является прапраправнучкой %(p2)s." + +#: plugins/RelCalc.py:188 +msgid "%(p1)s is the %(level)dth great granddaughter of %(p2)s." +msgstr "%(p1)s является %(level)d-правнучкой %(p2)s." + +#: plugins/RelCalc.py:193 +msgid "%(p1)s is the sister of %(p2)s." +msgstr "%(p1)s является сестрой %(p2)s." + +#: plugins/RelCalc.py:196 +msgid "%(p1)s is the aunt of %(p2)s." +msgstr "%(p1)s является тетей %(p2)s." + +#: plugins/RelCalc.py:199 +msgid "%(p1)s is the grandaunt of %(p2)s." +msgstr "%(p1)s является двоюродной бабушкой %(p2)s." + +#: plugins/RelCalc.py:202 +msgid "%(p1)s is the great grandaunt of %(p2)s." +msgstr "%(p1)s является двоюродной прабабушкой %(p2)s." + +#: plugins/RelCalc.py:205 +msgid "%(p1)s is the second great grandaunt of %(p2)s." +msgstr "%(p1)s является двоюродной прапрабабушкой %(p2)s." + +#: plugins/RelCalc.py:208 +msgid "%(p1)s is the third great grandaunt of %(p2)s." +msgstr "%(p1)s является двоюродной прапрапрабабушкой %(p2)s." + +#: plugins/RelCalc.py:211 +msgid "%(p1)s is the %(level)dth great grandaunt of %(p2)s." +msgstr "%(p1)s является двоюродной %(level)d-прабабушкой %(p2)s." + +#: plugins/RelCalc.py:216 +msgid "%(p1)s is the brother of %(p2)s." +msgstr "%(p1)s является братом %(p2)s." + +#: plugins/RelCalc.py:219 +msgid "%(p1)s is the uncle of %(p2)s." +msgstr "%(p1)s является дядей %(p2)s." + +#: plugins/RelCalc.py:222 +msgid "%(p1)s is the granduncle of %(p2)s." +msgstr "%(p1)s является двоюродным дедушкой %(p2)s." + +#: plugins/RelCalc.py:225 +msgid "%(p1)s is the great granduncle of %(p2)s." +msgstr "%(p1)s является двоюродным прадедушкой %(p2)s." + +#: plugins/RelCalc.py:228 +msgid "%(p1)s is the second great granduncle of %(p2)s." +msgstr "%(p1)s является двоюродным прапрадедушкой %(p2)s." + +#: plugins/RelCalc.py:231 +msgid "%(p1)s is the third great granduncle of %(p2)s." +msgstr "%(p1)s является двоюродным прапрапрадедушкой %(p2)s." + +#: plugins/RelCalc.py:234 +msgid "%(p1)s is the %(level)dth great granduncle of %(p2)s." +msgstr "%(p1)s является двоюродным %(level)d-прадедушкой %(p2)s." + +#: plugins/RelCalc.py:239 +msgid "%(p1)s is the nephew of %(p2)s." +msgstr "%(p1)s является племянником %(p2)s." + +#: plugins/RelCalc.py:242 +msgid "%(p1)s is the grandnephew of %(p2)s." +msgstr "%(p1)s является внучатым племянником %(p2)s." + +#: plugins/RelCalc.py:245 +msgid "%(p1)s is the great grandnephew of %(p2)s." +msgstr "%(p1)s является правнучатым племянником %(p2)s." + +#: plugins/RelCalc.py:248 +msgid "%(p1)s is the second great grandnephew of %(p2)s." +msgstr "%(p1)s является праправнучатым племянником %(p2)s." + +#: plugins/RelCalc.py:251 +msgid "%(p1)s is the third great grandnephew of %(p2)s." +msgstr "%(p1)s является прапраправнучатым племянником %(p2)s." + +#: plugins/RelCalc.py:254 +msgid "%(p1)s is the %(level)dth great grandnephew of %(p2)s." +msgstr "%(p1)s является %(level)d-правнучатым племянником %(p2)s." + +#: plugins/RelCalc.py:259 +msgid "%(p1)s is the niece of %(p2)s." +msgstr "%(p1)s является племянницей %(p2)s." + +#: plugins/RelCalc.py:262 +msgid "%(p1)s is the grandniece of %(p2)s." +msgstr "%(p1)s является внучатой племянницей %(p2)s." + +#: plugins/RelCalc.py:265 +msgid "%(p1)s is the great grandniece of %(p2)s." +msgstr "%(p1)s является правнучатой племянницей %(p2)s." + +#: plugins/RelCalc.py:268 +msgid "%(p1)s is the second great grandniece of %(p2)s." +msgstr "%(p1)s является праправнучатой племянницей %(p2)s." + +#: plugins/RelCalc.py:271 +msgid "%(p1)s is the third great grandniece of %(p2)s." +msgstr "%(p1)s является прапраправнучатой племянницей %(p2)s." + +#: plugins/RelCalc.py:274 +msgid "%(p1)s is the %(level)dth great grandniece of %(p2)s." +msgstr "%(p1)s является %(level)d-правнучатой племянницей %(p2)s." + +#: plugins/RelCalc.py:363 +msgid "Their common ancestor is %s." +msgstr "Их общий предок - %s." + +#: plugins/RelCalc.py:369 +msgid "Their common ancestors are %s and %s." +msgstr "Их общие предки - %s и %s." + +#: plugins/RelCalc.py:374 +msgid "Their common ancestors are : " +msgstr "Их общие предки : " + +#: plugins/RelCalc.py:387 +msgid "There is no relationship between %s and %s." +msgstr "Между %s и %s нет родственных отношений." + +#: plugins/RelCalc.py:391 +msgid "%s and %s are the same person." +msgstr "%s и %s являются одним и тем же лицом." + +#: plugins/RelCalc.py:436 +msgid "Relationship calculator" +msgstr "Счетчик Отношений" + +#: plugins/RelCalc.py:437 plugins/Verify.py:292 plugins/soundgen.py:94 +msgid "Utilities" +msgstr "Утилиты" + +#: plugins/RelCalc.py:438 +msgid "Calculates the relationship between two people" +msgstr "Вычисляет отношение между двумя лицами" + +#: plugins/ReorderIds.py:105 +msgid "Reorder gramps IDs" +msgstr "Переупорядочить gramps ID номера" + +#: plugins/ReorderIds.py:107 +msgid "Reorders the gramps IDs according to gramps' default rules." +msgstr "" +"Переупорядочивает gramps ID номера в соответствии с правилами gramps по " +"умолчанию." + +#: plugins/Summary.py:92 +msgid "Individuals" +msgstr "Лица" + +#: plugins/Summary.py:94 +msgid "Number of individuals" +msgstr "Количество лиц" + +#: plugins/Summary.py:97 +msgid "Individuals with incomplete names" +msgstr "Лища с неполными именами" + +#: plugins/Summary.py:98 +msgid "Individuals missing birth dates" +msgstr "Лица с отсутствующими датами рождения" + +#: plugins/Summary.py:100 +msgid "Family Information" +msgstr "Семейная Информация" + +#: plugins/Summary.py:102 +msgid "Number of families" +msgstr "Количество семей" + +#: plugins/Summary.py:103 +msgid "Unique surnames" +msgstr "Уникальные фамилии" + +#: plugins/Summary.py:106 +msgid "Individuals with media objects" +msgstr "Лица с медиа-объектами" + +#: plugins/Summary.py:107 +msgid "Total number of media object references" +msgstr "Общее число ссылок на медиа-объекты" + +#: plugins/Summary.py:108 +msgid "Number of unique media objects" +msgstr "Число уникальных медиа-объектов" + +#: plugins/Summary.py:109 +msgid "Total size of media objects" +msgstr "Общий размер медиа-объекта" + +#: plugins/Summary.py:110 +msgid "bytes" +msgstr "байт" + +#: plugins/Summary.py:113 +msgid "Missing Media Objects" +msgstr "Отсутствующие Медиа-Объекты" + +#: plugins/Summary.py:132 +msgid "Summary of the database" +msgstr "Итоги базы данных" + +#: plugins/Summary.py:134 plugins/count_anc.py:92 +msgid "View" +msgstr "Просмотр" + +#: plugins/Summary.py:135 +msgid "Provides a summary of the current database" +msgstr "Предоставляет итоги текущей базы данных" + +#: plugins/Verify.py:291 +msgid "Verify the database" +msgstr "Проверить базу данных" + +#: plugins/Verify.py:293 +msgid "List exceptions to assertions or checks about the database" +msgstr "Перечислить исключения в проверках базы данных" + +#: plugins/WebPage.py:274 +msgid "Return to the index of people" +msgstr "Вернуться к индексу лиц" + +#: plugins/WebPage.py:382 +msgid "Facts and Events" +msgstr "Факты и События" + +#: plugins/WebPage.py:643 +msgid "Individual" +msgstr "Лицо" + +#: plugins/WebPage.py:646 +msgid "Ancestors and descendants" +msgstr "Предки и потомки" + +#: plugins/WebPage.py:647 +msgid "Grandparent's ancestors and descendants" +msgstr "Предки и потомки деда (бабушки)" + +#: plugins/WebPage.py:648 +msgid "Entire database" +msgstr "Вся база данных" + +#: plugins/WebPage.py:675 +msgid "Creating Web Pages" +msgstr "Создаю Web Страницы" + +#: plugins/WebPage.py:675 +msgid "Generate HTML reports - GRAMPS" +msgstr "Создать HTML отчеты - GRAMPS" + +#: plugins/WebPage.py:685 plugins/WebPage.py:689 +msgid "Family Tree Index" +msgstr "Индкс Семейного Дерева" + +#: plugins/WebPage.py:708 +msgid "Neither %s nor %s are directories" +msgstr "Ни %s ни %s не являются каталогами" + +#: plugins/WebPage.py:715 plugins/WebPage.py:719 plugins/WebPage.py:731 +#: plugins/WebPage.py:735 +msgid "Could not create the directory : %s" +msgstr "Не смогла создать каталог : %s" + +#: plugins/WebPage.py:798 +msgid "Include a link to the index page" +msgstr "Поставить линк к главной странице" + +#: plugins/WebPage.py:799 plugins/gedcomexport.glade:295 +#: plugins/pafexport.glade:296 +msgid "Do not include records marked private" +msgstr "Не включать записи помеченные как личные" + +#: plugins/WebPage.py:800 +msgid "Restrict information on living people" +msgstr "Ограничить информацию о живущих лицах" + +#: plugins/WebPage.py:801 +msgid "Do not use images" +msgstr "Не использовать изображения" + +#: plugins/WebPage.py:802 +msgid "Do not use images for living people" +msgstr "Не использовать изображения живущих лиц" + +#: plugins/WebPage.py:803 +msgid "Do not include comments and text in source information" +msgstr "Не включать комментарии и текст в информацию об источнике" + +#: plugins/WebPage.py:804 +msgid "Image subdirectory" +msgstr "Каталог изображений" + +#: plugins/WebPage.py:820 +msgid "Privacy Options" +msgstr "Параметры Личной Информации" + +#: plugins/WebPage.py:836 plugins/WebPage.py:1068 +msgid "Generate Web Site" +msgstr "Генерировать Web сайт" + +#: plugins/WebPage.py:836 plugins/WebPage.py:1069 +msgid "Web Page" +msgstr "Web Страница" + +#: plugins/WebPage.py:841 +msgid "Target Directory" +msgstr "Каталог Назначения" + +#: plugins/WebPage.py:1071 +msgid "Generates web (HTML) pages for individuals, or a set of individuals." +msgstr "Создает web (HTML) страницы дла отдельных лиц или для групп лиц." + +#: plugins/WriteGedcom.py:424 plugins/WriteGedcomXML.py:426 +#: plugins/WritePafPalm.py:567 +msgid "Ancestors of %s" +msgstr "Предки %s" + +#: plugins/WriteGedcom.py:432 plugins/WriteGedcomXML.py:434 +#: plugins/WritePafPalm.py:575 +msgid "Ancestors and Descendants of %s" +msgstr "Предки и Потомки %s" + +#: plugins/WriteGedcom.py:436 plugins/WriteGedcomXML.py:438 +#: plugins/WritePafPalm.py:579 +msgid "People somehow connected to %s" +msgstr "Лица как-либо связанные с %s" + +#: plugins/WriteGedcom.py:1044 plugins/WriteGedcomXML.py:1013 +msgid "Export to GEDCOM" +msgstr "Экспорт в GEDCOM" + +#: plugins/WritePafPalm.py:594 +msgid "Export to PAF for PalmOS" +msgstr "Экспорт в PAF для PalmOS" + +#: plugins/WritePkg.py:135 +msgid "Export to GRAMPS package" +msgstr "Экспорт в пакет GRAMPS" + +#: plugins/changetype.glade:18 +msgid "Change Event Types - GRAMPS" +msgstr "Поменять Типы Событий - GRAMPS" + +#: plugins/changetype.glade:101 +msgid "Change Event Type of" +msgstr "Поменять Типы Событий" + +#: plugins/count_anc.py:48 +msgid "Number of ancestors of \"%s\" by generation" +msgstr "Количество предков \"%s\" по поколениям" + +#: plugins/count_anc.py:58 +msgid "Generation %d has 1 individual.\n" +msgstr "Поколение %d насчитывает 1 лицо.\n" + +#: plugins/count_anc.py:60 +msgid "Generation %d has %d individuals.\n" +msgstr "Поколение %d насчитывает %d лиц.\n" + +#: plugins/count_anc.py:74 +msgid "Total ancestors in generations %d to -1 is %d .\n" +msgstr "Общее число предков в поколениях с %d по -1 равно %d .\n" + +#: plugins/count_anc.py:91 +msgid "Number of ancestors" +msgstr "Число предков" + +#: plugins/count_anc.py:93 +msgid "Counts number of ancestors of selected person" +msgstr "Вычисляет число предков выделенного лица" + +#: plugins/desbrowse.glade:18 +msgid "Descendant Browser - GRAMPS" +msgstr "Просмотр Потомков - GRAMPS" + +#: plugins/desbrowse.glade:92 +msgid "Descendant Browser" +msgstr "Просмотр Потомков" + +#: plugins/eventcmp.glade:18 +msgid "Save as a Spreadsheet - GRAMPS" +msgstr "Сохранить как Таблицу - GRAMPS" + +#: plugins/eventcmp.glade:100 +msgid "Save data as a spreadsheet" +msgstr "Сохранить данные как таблицу" + +#: plugins/eventcmp.glade:130 +msgid "Save Data" +msgstr "Сохранить Данные" + +#: plugins/eventcmp.glade:154 +msgid "Format" +msgstr "Формат" + +#: plugins/eventcmp.glade:173 +msgid "OpenOffice Spreadsheet" +msgstr "Таблица OpenOffice" + +#: plugins/eventcmp.glade:246 +msgid "Choose the HTML template" +msgstr "Выбрать образец HTML" + +#: plugins/eventcmp.glade:277 plugins/eventcmp.glade:566 +msgid "Event Comparison - GRAMPS" +msgstr "Сравнение Событий - GRAMPS" + +#: plugins/eventcmp.glade:327 +msgid "Save As..." +msgstr "Сохранить Как..." + +#: plugins/eventcmp.glade:364 +msgid "Event Comparison" +msgstr "Сравнение Событий" + +#: plugins/eventcmp.glade:420 +msgid "Complex Filter - GRAMPS" +msgstr "Сложный Фильтр - GRAMPS" + +#: plugins/eventcmp.glade:502 +msgid "Save complex filter as:" +msgstr "Сохранить сложный фильтр как:" + +#: plugins/eventcmp.glade:648 +msgid "Event Comparison - Create a complex filter" +msgstr "Сравнение Событий - Создать сложный фильтр" + +#: plugins/eventcmp.glade:908 +msgid "Add Filter" +msgstr "Добавить Фильтр" + +#: plugins/eventcmp.glade:923 +msgid "Delete Filter" +msgstr "Уничтожить Фильтр" + +#: plugins/eventcmp.glade:937 +msgid "Load Filters" +msgstr "Загрузить Фильтры" + +#: plugins/eventcmp.glade:952 +msgid "Save Filters" +msgstr "Сохранить Фильтры" + +#: plugins/gedcomexport.glade:18 plugins/gedcomexport.glade:328 +msgid "Export GEDCOM file" +msgstr "Экспортировать файл GEDCOM" + +#: plugins/gedcomexport.glade:100 plugins/gedcomexport.glade:396 +#: plugins/pkgexport.glade:225 +msgid "GEDCOM Export" +msgstr "GEDCOM Экспорт" + +#: plugins/gedcomexport.glade:130 plugins/pkgexport.glade:130 +msgid "Export GEDCOM" +msgstr "Экспорт GEDCOM" + +#: plugins/gedcomexport.glade:179 plugins/gedcomimport.glade:377 +msgid "Encoding" +msgstr "Кодировка" + +#: plugins/gedcomexport.glade:199 +msgid "ANSEL" +msgstr "ANSEL" + +#: plugins/gedcomexport.glade:215 +msgid "UNICODE" +msgstr "UNICODE" + +#: plugins/gedcomexport.glade:232 plugins/merge.glade:432 +#: plugins/pafexport.glade:276 styles.glade:758 +msgid "Options" +msgstr "Параметры" + +#: plugins/gedcomexport.glade:261 +msgid "Target" +msgstr "Назначение" + +#: plugins/gedcomexport.glade:280 +msgid "Standard GEDCOM 5.5" +msgstr "Стандарт GEDCOM 5.5" + +#: plugins/gedcomexport.glade:310 plugins/pafexport.glade:311 +msgid "Restrict data on living people" +msgstr "Ограничить данные о живущих лицах" + +#: plugins/gedcomexport.glade:522 plugins/gedcomexport.glade:551 +#: plugins/gedcomexport.glade:580 plugins/merge.glade:101 +#: plugins/pkgexport.glade:351 plugins/pkgexport.glade:380 +#: plugins/pkgexport.glade:409 plugins/readgedcom.glade:75 +msgid "%P %%" +msgstr "%P %%" + +#: plugins/gedcomimport.glade:18 +msgid "GEDCOM Import Status" +msgstr "Статус Импорта GEDCOM" + +#: plugins/gedcomimport.glade:36 +msgid "GEDCOM Import" +msgstr "Импорт GEDCOM" + +#: plugins/gedcomimport.glade:103 +msgid "Created by" +msgstr "Создание:" + +#: plugins/gedcomimport.glade:129 +msgid "Version" +msgstr "Версия" + +#: plugins/gedcomimport.glade:155 +msgid "Number of Families" +msgstr "Число Семей" + +#: plugins/gedcomimport.glade:181 +msgid "Number of People" +msgstr "Число Людей" + +#: plugins/gedcomimport.glade:327 +msgid "Number of Errors" +msgstr "Число Ошибок" + +#: plugins/merge.glade:35 +msgid "Determining Possible Merges" +msgstr "Определяю Возможные Слияния" + +#: plugins/merge.glade:62 +msgid "Please be patient. This may take a while." +msgstr "Пожалуйста, потерпите. Это может затянуться." + +#: plugins/merge.glade:121 +msgid "Merge List - GRAMPS" +msgstr "Слить Список - GRAMPS" + +#: plugins/merge.glade:170 +msgid "Merge" +msgstr "Слить" + +#: plugins/merge.glade:202 +msgid "Potential Merges" +msgstr "Потенциальные Слияния" + +#: plugins/merge.glade:255 +msgid "Rating" +msgstr "Рейтинг" + +#: plugins/merge.glade:268 +msgid "Person 1" +msgstr "Лицо 1" + +#: plugins/merge.glade:281 +msgid "Person 2" +msgstr "Лицо 2" + +#: plugins/merge.glade:408 +msgid "Match Threshold" +msgstr "Степень Порог Соответствия" + +#: plugins/merge.glade:451 +msgid "Use SoundEx codes for name matches" +msgstr "Использовать коды SoundEx для сопоставления имен" + +#: plugins/merge.glade:464 +msgid "(Recommended only for English)" +msgstr "(Рекомендуется только для Английского языка)" + +#: plugins/pafexport.glade:18 +msgid "Export PAF for PalmOS file" +msgstr "Экспорт PAF файл для PalmOS" + +#: plugins/pafexport.glade:100 +msgid "PAF for PalmOS Export" +msgstr "PAF для PalmOS Экспорт" + +#: plugins/pafexport.glade:130 +msgid "Export PAF for PalmOS" +msgstr "Экспорт PAF для PalmOS" + +#: plugins/pafexport.glade:208 +msgid "Database name: " +msgstr "Имя базы данных: " + +#: plugins/patchnames.glade:18 +msgid "Name and Title Extraction Tool - GRAMPS" +msgstr "Инструмент Извлечения Имен и Титулов - GRAMPS" + +#: plugins/patchnames.glade:110 +msgid "Name and Title Extraction Tool" +msgstr "Инструмент Извлечения Имен и Титулов" + +#: plugins/patchnames.glade:142 +msgid "" +"Below is a list of the nicknames and titles that GRAMPS can extract from the " +"\ncurrent database. If you select 'Yes', GRAMPS will modify your database as " +"\nspecified below. If you do not approve of these changes, you should select " +"\n'No', and your database will not be altered.\n" +"\n" +"Should the following changes be made?" +msgstr "" +"Ниже приведен список кратких имен и титулов которые GRAMPS может\n" +"извлечь из текущей базы данных. Если вы выберете 'Да', GRAMPS\n" +"изменит вашу базу данных в соответствии с нижеследующим. Если вы\n" +"не одобряете эти изменения, выберете 'Нет' и ваша база данных не будет\n" +"изменена.\n" +"\n" +"Произвести нижеследующие изменения?" + +#: plugins/pkgexport.glade:18 +msgid "Export GRAMPS package - GRAMPS" +msgstr "Экспортировать пакет GRAMPS - GRAMPS" + +#: plugins/pkgexport.glade:100 +msgid "GRAMPS package export" +msgstr "Экспорт пакета GRAMPS" + +#: plugins/pkgexport.glade:157 +msgid "Export GRAMPS package" +msgstr "Экспортировать пакет GRAMPS" + +#: plugins/readgedcom.glade:18 +msgid "GEDCOM Read Progress" +msgstr "Прогресс Чтения GEDCOM" + +#: plugins/readgedcom.glade:35 +msgid "GEDCOM Import Progress" +msgstr "Прогресс Импорта GEDCOM" + +#: plugins/relcalc.glade:18 +msgid "Relationship Calculator - GRAMPS" +msgstr "Счетчик Отношений - GRAMPS" + +#: plugins/relcalc.glade:99 +msgid "name" +msgstr "имя" + +#: plugins/soundex.glade:18 +msgid "SoundEx Code Generator - GRAMPS" +msgstr "Генератор Кодов SoundEx - GRAMPS" + +#: plugins/soundex.glade:60 +msgid "Calculate SoundEx code for the name" +msgstr "Вычислить код SoundEx для данного имени" + +#: plugins/soundex.glade:75 +msgid "Close Window" +msgstr "Закрыть Окно" + +#: plugins/soundex.glade:102 +msgid "SoundEx Code Generator" +msgstr "Генератор Кодов SoundEx" + +#: plugins/soundex.glade:246 +msgid "Name used to generate SoundEx code" +msgstr "Имя использованное для вычисления кода SoundEx" + +#: plugins/soundgen.py:93 +msgid "Generate SoundEx codes" +msgstr "Генерирует коды SoundEx" + +#: plugins/soundgen.py:95 +msgid "Generates SoundEx codes for names" +msgstr "Генерирует коды SoundEx для имен" + +#: plugins/summary.glade:18 +msgid "Database Summary - GRAMPS" +msgstr "Итоги Базы Данных - GRAMPS" + +#: plugins/summary.glade:95 +msgid "Database Summary" +msgstr "Итоги Базы Данных" + +#: plugins/test.py:458 +msgid "test" +msgstr "тест" + +#: plugins/verify.glade:18 +msgid "Database Verify - GRAMPS" +msgstr "Проверить Базу Данных - GRAMPS" + +#: plugins/verify.glade:95 +msgid "Database Verify" +msgstr "Проверить Базу Данных" + +#: plugins/verify.glade:136 +msgid "Verify - Settings" +msgstr "Проверить - Свойства" + +#: plugins/verify.glade:187 +msgid "Maximum age" +msgstr "Наибольший возраст" + +#: plugins/verify.glade:213 +msgid "Maximum husband-wife age difference" +msgstr "Наибольшая разница в возрасте между мужем и женой" + +#: plugins/verify.glade:239 +msgid "Minimum age to marry" +msgstr "Наименьший возраст для брака" + +#: plugins/verify.glade:265 +msgid "Maximum age to marry" +msgstr "Наибольший возраст для брака" + +#: plugins/verify.glade:291 +msgid "Maximum number of spouses for a person" +msgstr "Наибольшее число супругов для лица" + +#: plugins/verify.glade:317 +msgid "Maximum number of consecutive years of widowhood" +msgstr "Наибольшее число лет подряд во вдовстве" + +#: plugins/verify.glade:343 +msgid "Maximum number of years between children" +msgstr "Наибольшее число лет между детьми" + +#: plugins/verify.glade:369 +msgid "Maximum span of years for all children" +msgstr "Наибольшее число лет между всеми детьми" + +#: plugins/verify.glade:400 +msgid "8" +msgstr "8" + +#: plugins/verify.glade:425 +msgid "25" +msgstr "25" + +#: plugins/verify.glade:450 +msgid "3" +msgstr "3" + +#: plugins/verify.glade:475 +msgid "50" +msgstr "50" + +#: plugins/verify.glade:500 plugins/verify.glade:688 +msgid "17" +msgstr "17" + +#: plugins/verify.glade:525 plugins/verify.glade:575 +msgid "30" +msgstr "30" + +#: plugins/verify.glade:550 +msgid "90" +msgstr "90" + +#: plugins/verify.glade:609 +msgid "Women" +msgstr "Женщины" + +#: plugins/verify.glade:631 +msgid "Minimum age to bear a child" +msgstr "Наименьший возраст для рождения ребенка" + +#: plugins/verify.glade:657 +msgid "Maximum age to bear a child" +msgstr "Наибольший возраст для рождения ребенка" + +#: plugins/verify.glade:713 +msgid "49" +msgstr "49" + +#: plugins/verify.glade:733 plugins/verify.glade:911 +msgid "Maximum number of children" +msgstr "Наибольшее число детей" + +#: plugins/verify.glade:764 +msgid "11" +msgstr "11" + +#: plugins/verify.glade:787 +msgid "Men" +msgstr "Мужчины" + +#: plugins/verify.glade:809 +msgid "Minimum age to father a child" +msgstr "Наименьший возраст чтобы стать отцом" + +#: plugins/verify.glade:835 +msgid "Maximum age to father a child" +msgstr "Наибольший возраст чтобы стать отцом" + +#: plugins/verify.glade:866 +msgid "18" +msgstr "18" + +#: plugins/verify.glade:891 +msgid "65" +msgstr "65" + +#: plugins/verify.glade:942 +msgid "15" +msgstr "15" + +#: preferences.glade:19 +msgid "Preferences - GRAMPS" +msgstr "Настройки - GRAMPS" + +#: preferences.glade:199 +msgid "GRAMPS Preferences" +msgstr "Настройки GRAMPS" + +#: preferences.glade:271 +msgid "" +"To change your preferences, select one of the subcategories in the menu on " +"the left hand side of the window." +msgstr "" +"Чтобы изменить ваши настройки выберите одну из подкатегорий в меню с левой " +"стороны окна" + +#: preferences.glade:331 +msgid "Default database directory" +msgstr "Каталог базы данных по умолчанию" + +#: preferences.glade:359 +msgid "Select default database directory - GRAMPS" +msgstr "Выбрать каталог базы данных по умолчанию - GRAMPS" + +#: preferences.glade:381 +msgid "The default directory for storing databases" +msgstr "Каталог по умолчанию для хранения баз данных" + +#: preferences.glade:406 +msgid "Automatically load last database" +msgstr "Автоматически загружать последнюю базу данных" + +#: preferences.glade:435 +msgid "Do not compress XML data file" +msgstr "Не сжимать XML файл данных" + +#: preferences.glade:489 +msgid "Autosave interval (minutes)" +msgstr "Интервал автосохранения (минуты)" + +#: preferences.glade:538 +msgid "Revison Control" +msgstr "Контроль Ревизий" + +#: preferences.glade:589 +msgid "Use Revision Control" +msgstr "Использовать Контроль Ревизий" + +#: preferences.glade:618 +msgid "Prompt for comment on save" +msgstr "Запрашивать комментарии при сохранении" + +#: preferences.glade:682 +msgid "Enable autocompletion" +msgstr "Включить автодополнение" + +#: preferences.glade:712 +msgid "Toolbar" +msgstr "Панель Инструментов" + +#: preferences.glade:737 +msgid "Display only icons" +msgstr "Показывать только пиктограммы" + +#: preferences.glade:758 +msgid "Display only text" +msgstr "Показывать только текст" + +#: preferences.glade:779 +msgid "Display icons and text" +msgstr "Показывать пиктограммы и текст" + +#: preferences.glade:796 +msgid "Status Bar" +msgstr "Панель Статуса" + +#: preferences.glade:821 +msgid "Active person's name only" +msgstr "Только имя активного лица" + +#: preferences.glade:842 +msgid "Active person's name and GRAMPS ID" +msgstr "Имя и GRAMPS ID номер активного лица" + +#: preferences.glade:863 +msgid "Active person's name and attribute" +msgstr "Имя и атрибут активного лица" + +#: preferences.glade:926 +msgid "Use tabbed pages" +msgstr "Использовать листы" + +#: preferences.glade:947 +msgid "Always display the LDS ordinance tabs" +msgstr "Всегда показывать листы процедур АСД" + +#: preferences.glade:979 +msgid "Display attribute on Edit Person form" +msgstr "Показывать атрибуты на анкете Правки Лица" + +#: preferences.glade:1017 +msgid "List display options" +msgstr "Перечислить параметры вывода" + +#: preferences.glade:1042 +msgid "Do not display alternate names in person list" +msgstr "Не показывать альтернативные имена в списке лиц" + +#: preferences.glade:1062 +msgid "Show Detail Flags in display lists" +msgstr "Показывать Флажки Подробностей в выводимых списках" + +#: preferences.glade:1082 +msgid "Show index numbers in child list" +msgstr "Показывать индексационные номера в списке детей" + +#: preferences.glade:1102 +msgid "Display GRAMPS ID in lists" +msgstr "Показывать GRAMPS ID номера в списках" + +#: preferences.glade:1138 +msgid "Custom Colors" +msgstr "Цвета по Заказу" + +#: preferences.glade:1168 preferences.glade:1197 preferences.glade:1226 +#: preferences.glade:1255 preferences.glade:1417 styles.glade:738 +#: styles.glade:1353 +msgid "Pick a color" +msgstr "Выбрать цвет" + +#: preferences.glade:1275 +msgid "Odd Row Foreground" +msgstr "Цвет Нечетных Строк" + +#: preferences.glade:1301 +msgid "Odd Row Background" +msgstr "Цвет Фона Нечетных Строк" + +#: preferences.glade:1327 +msgid "Even Row Foreground" +msgstr "Цвет Четных Строк" + +#: preferences.glade:1353 +msgid "Even Row Background" +msgstr "Цвет Фона Четных Строк" + +#: preferences.glade:1386 +msgid "Enable Custom Colors" +msgstr "Включить Цвета по Заказу" + +#: preferences.glade:1437 +msgid "Ancestor Foreground" +msgstr "Цвет Предков" + +#: preferences.glade:1486 +msgid "Display Formats" +msgstr "Форматы Вывода" + +#: preferences.glade:1507 preferences.glade:1629 +msgid "Date Format" +msgstr "Форматы Дат" + +#: preferences.glade:1533 +msgid "Name Format" +msgstr "Форматы Имен" + +#: preferences.glade:1608 +msgid "Entry Formats" +msgstr "Ворматы Ввода" + +#: preferences.glade:1681 +msgid "Calendars" +msgstr "Календари" + +#: preferences.glade:1706 +msgid "Show calendar format selection menu" +msgstr "Показать меню выбора формата календаря" + +#: preferences.glade:2255 +msgid "Preferred Text Format" +msgstr "Прадпочитаемый Формат Текста" + +#: preferences.glade:2281 +msgid "Preferred Paper Size" +msgstr "Предпочитаемый Размер Бумаги" + +#: preferences.glade:2307 +msgid "Default report directory" +msgstr "Каталог отчетов по умолчанию" + +#: preferences.glade:2333 +msgid "Default Web Site directory" +msgstr "Каталог Web сайтов по умолчанию" + +#: preferences.glade:2361 preferences.glade:2403 +msgid "Select default report directory - GRAMPS" +msgstr "Выбрать каталог отчетов по умолчанию - GRAMPS" + +#: preferences.glade:2383 +msgid "The default directory for the output of many report generators" +msgstr "Каталог по умолчанию для результатов многих генераторов отчетов" + +#: preferences.glade:2425 +msgid "The default directory for the output of the Web Site report generators" +msgstr "Каталог по умолчанию для результатов генераторов Web сайт отчетов" + +#: preferences.glade:2469 +msgid "A4" +msgstr "А4" + +#: preferences.glade:2469 +msgid "Letter" +msgstr "Письмо" + +#: preferences.glade:2490 +msgid "Preferred Graphical Format" +msgstr "Предпочитаемый Графический Формат" + +#: preferences.glade:2562 +msgid "Drag and Drop from an External Source" +msgstr "Переноска Мышью из Внешнего Источника" + +#: preferences.glade:2588 +msgid "Make a reference to the object when the object is dropped" +msgstr "Сделать ссылку на объект когда объект отпущен" + +#: preferences.glade:2610 +msgid "Make a local copy when the object is dropped" +msgstr "Сделать локальную копию когда объект отпущен" + +#: preferences.glade:2632 +msgid "Display global properties editor when object is dropped" +msgstr "Вывести редактор глобальных свойств когда объект отпущен" + +#: preferences.glade:2648 +msgid "Drag and Drop from an Internal Source" +msgstr "Переноска Мышью из Внутреннего Источника" + +#: preferences.glade:2674 +msgid "Display local properties editor when object is dropped" +msgstr "Вывести редактор локальных свойств когда объект отпущен" + +#: preferences.glade:2710 +msgid "GRAMPS ID prefixes" +msgstr "Префиксы GRAMPS ID номеров" + +#: preferences.glade:2835 +msgid "Media Object" +msgstr "Медиа-Объекты" + +#: preferences.glade:2871 +msgid "I" +msgstr "I" + +#: preferences.glade:2901 +msgid "F" +msgstr "F" + +#: preferences.glade:2931 +msgid "P" +msgstr "P" + +#: preferences.glade:2961 +msgid "S" +msgstr "S" + +#: preferences.glade:2991 +msgid "O" +msgstr "O" + +#: preferences.glade:3014 +msgid "User Defined IDs" +msgstr "ID Номера Определенные Пользователем" + +#: preferences.glade:3040 +msgid "Allow internal GRAMPS ID numbers to be edited" +msgstr "Разрешить правку внутренних GRAMPS ID номеров" + +#: preferences.glade:3076 +msgid "Customization" +msgstr "Настройки" + +#: preferences.glade:3097 +msgid "Surname Guessing" +msgstr "Угадывание Фамилии" + +#: revision.glade:20 +msgid "Open a database - GRAMPS" +msgstr "Открыть базу данных - GRAMPS" + +#: revision.glade:102 +msgid "Open a database" +msgstr "Открыть базу данных" + +#: revision.glade:160 +msgid "Open a GRAMPS Database" +msgstr "Открыть Базу Данных GRAMPS" + +#: revision.glade:187 +msgid "Revert to an older version from revision control" +msgstr "Откатить к более старой версии из контроля ревизий" + +#: revision.glade:203 +msgid "Select an older revision - GRAMPS" +msgstr "Выбрать более старую ревизию - GRAMPS" + +#: revision.glade:285 +msgid "Revert to an older revision" +msgstr "Откатить к более старой ревизии" + +#: revision.glade:338 +msgid "Revision" +msgstr "Ревизия" + +#: revision.glade:364 +msgid "Changed by" +msgstr "Изменено :" + +#: revision.glade:377 +msgid "Comment" +msgstr "Коментарий" + +#: revision.glade:394 +msgid "Revison Control Comment - GRAMPS" +msgstr "Коментарий Контроля Ревизий - GRAMPS" + +#: revision.glade:462 +msgid "Revision Control Comment" +msgstr "Коментарий Контроля Ревизий" + +#: srcsel.glade:20 +msgid "Source Information - GRAMPS" +msgstr "Информация об Источниках - GRAMPS" + +#: srcsel.glade:104 +msgid "Source Information" +msgstr "Информация об Источниках" + +#: srcsel.glade:156 +msgid "Publication Information" +msgstr "Информация о Публикациях" + +#: srcsel.glade:481 +msgid "Volume/Film/Page" +msgstr "Том/Пленка/Страница" + +#: srcsel.glade:559 +msgid "Comments" +msgstr "Коментарии" + +#: srcsel.glade:585 +msgid "Confidence" +msgstr "Уверенность" + +#: srcsel.glade:643 +msgid "Source Reference Selection - GRAMPS" +msgstr "Выбор Ссылок на Источники - GRAMPS" + +#: srcsel.glade:725 +msgid "Source Reference Selection" +msgstr "Выбор Ссылок на Источники" + +#: styles.glade:21 +msgid "Document Styles - GRAMPS" +msgstr "Стили Документов - GRAMPS" + +#: styles.glade:106 +msgid "Document Styles" +msgstr "Стили Документов" + +#: styles.glade:259 +msgid "Style Editor - GRAMPS" +msgstr "Редактор Стилей - GRAMPS" + +#: styles.glade:381 +msgid "Style Name" +msgstr "Название Стиля" + +#: styles.glade:414 +msgid "Paragraph Style" +msgstr "Стиль Абзацев" + +#: styles.glade:458 +msgid "Font Options" +msgstr "Параметры Шрифта" + +#: styles.glade:479 +msgid "pt" +msgstr "пункт" + +#: styles.glade:563 +msgid "Color" +msgstr "Цвет" + +#: styles.glade:589 +msgid "Type Face" +msgstr "Тип Шрифта" + +#: styles.glade:616 +msgid "Bold" +msgstr "Жирный" + +#: styles.glade:639 +msgid "Italic" +msgstr "Курсив" + +#: styles.glade:662 +msgid "Underline" +msgstr "Подчеркнутый" + +#: styles.glade:705 +msgid "roman (Times)" +msgstr "римский (Таймс)" + +#: styles.glade:720 +msgid "swiss (Arial, Helvetica)" +msgstr "швейцарский (Ариал,Гельветика)" + +#: styles.glade:787 +msgid "Paragraph Options" +msgstr "Параметры Абзаца" + +#: styles.glade:808 +msgid "Background" +msgstr "Фон" + +#: styles.glade:834 +msgid "Right Margin" +msgstr "Правое Поле" + +#: styles.glade:860 +msgid "Left Margin" +msgstr "Левое Поле" + +#: styles.glade:886 +msgid "Padding" +msgstr "Запас" + +#: styles.glade:912 styles.glade:938 styles.glade:964 +msgid "cm" +msgstr "см" + +#: styles.glade:1062 +msgid "Alignment" +msgstr "Выравнивание" + +#: styles.glade:1088 +msgid "Borders" +msgstr "Границы" + +#: styles.glade:1138 styles.glade:1258 +msgid "left" +msgstr "левый край" + +#: styles.glade:1162 styles.glade:1304 +msgid "right" +msgstr "правый край" + +#: styles.glade:1186 +msgid "center" +msgstr "центр" + +#: styles.glade:1210 +msgid "justify" +msgstr "оба края" + +#: styles.glade:1281 +msgid "top" +msgstr "верх" + +#: styles.glade:1327 +msgid "bottom" +msgstr "низ" + diff --git a/gramps/src/rule.glade b/gramps/src/rule.glade new file mode 100644 index 000000000..1f86034e8 --- /dev/null +++ b/gramps/src/rule.glade @@ -0,0 +1,732 @@ + + + + + Rule + rule + + src + pixmaps + C + True + True + + + + GnomeDialog + define_filter + Define Filter - GRAMPS + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + False + True + False + False + False + + + GtkVBox + GnomeDialog:vbox + dialog-vbox1 + False + 8 + + 4 + True + True + + + + GtkHButtonBox + GnomeDialog:action_area + dialog-action_area1 + GTK_BUTTONBOX_END + 8 + 85 + 27 + 7 + 0 + + 0 + False + True + GTK_PACK_END + + + + GtkButton + ok + True + True + + clicked + on_ok_clicked + Mon, 01 Apr 2002 02:49:31 GMT + + GNOME_STOCK_BUTTON_OK + + + + GtkButton + button6 + True + True + + clicked + on_cancel_clicked + Thu, 04 Apr 2002 18:31:55 GMT + + GNOME_STOCK_BUTTON_CANCEL + + + + + GtkVBox + vbox1 + False + 0 + + 0 + True + True + + + + GtkLabel + label1 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 + + 0 + False + False + + + + + GtkHSeparator + hseparator1 + + 5 + False + True + + + + + GtkTable + table1 + 2 + 2 + False + 0 + 0 + + 0 + True + True + + + + GtkLabel + label2 + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 0 + 0 + + 0 + 1 + 0 + 1 + 5 + 5 + False + False + False + False + True + False + + + + + GtkLabel + label10 + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 0 + 0 + + 0 + 1 + 1 + 2 + 5 + 5 + False + False + False + False + True + False + + + + + GtkEntry + filter_name + True + True + True + 0 + + + 1 + 2 + 0 + 1 + 5 + 5 + True + False + False + False + True + False + + + + + GtkEntry + comment + True + True + True + 0 + + + 1 + 2 + 1 + 2 + 5 + 5 + True + False + False + False + True + False + + + + + + GtkScrolledWindow + scrolledwindow1 + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + GTK_UPDATE_CONTINUOUS + GTK_UPDATE_CONTINUOUS + + 0 + True + True + + + + GtkCList + rule_list + 450 + 200 + True + 2 + 147,80 + GTK_SELECTION_SINGLE + True + GTK_SHADOW_IN + + + GtkLabel + CList:title + label3 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 + + + + GtkLabel + CList:title + label4 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 + + + + + + GtkHButtonBox + hbuttonbox1 + GTK_BUTTONBOX_SPREAD + 30 + 85 + 27 + 7 + 0 + + 0 + False + True + + + + GtkButton + add + True + True + + clicked + on_add_clicked + Mon, 01 Apr 2002 02:47:47 GMT + + + GTK_RELIEF_NORMAL + + + + GtkButton + edit + True + True + + clicked + on_edit_clicked + Mon, 01 Apr 2002 02:48:18 GMT + + + GTK_RELIEF_NORMAL + + + + GtkButton + delete + True + True + + clicked + on_delete_clicked + Mon, 01 Apr 2002 02:48:53 GMT + + + GTK_RELIEF_NORMAL + + + + + + + + GnomeDialog + add_rule + Add Rule - GRAMPS + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + False + True + False + False + False + + + GtkVBox + GnomeDialog:vbox + dialog-vbox2 + False + 8 + + 4 + True + True + + + + GtkHButtonBox + GnomeDialog:action_area + dialog-action_area2 + GTK_BUTTONBOX_END + 8 + 85 + 27 + 7 + 0 + + 0 + False + True + GTK_PACK_END + + + + GtkButton + ok + True + True + GNOME_STOCK_BUTTON_OK + + + + GtkButton + cancel + True + True + GNOME_STOCK_BUTTON_CANCEL + + + + + GtkVBox + vbox2 + False + 0 + + 0 + True + True + + + + GtkLabel + label5 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 + + 5 + False + False + + + + + GtkHSeparator + hseparator2 + + 5 + False + True + + + + + GtkHBox + hbox2 + False + 0 + + 5 + False + True + + + + GtkLabel + label6 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 + + 5 + False + True + + + + + GtkCombo + rule_name + True + False + False + True + False + + + 5 + True + True + + + + GtkEntry + GtkCombo:entry + combo-entry1 + True + False + True + 0 + + + + + + + GtkFrame + values + + 0 + GTK_SHADOW_ETCHED_IN + + 0 + True + True + + + + Placeholder + + + + + + + + GnomeDialog + filter_list + User Defined Filters - GRAMPS + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + False + True + False + False + False + + + GtkVBox + GnomeDialog:vbox + dialog-vbox3 + False + 8 + + 4 + True + True + + + + GtkHButtonBox + GnomeDialog:action_area + dialog-action_area3 + GTK_BUTTONBOX_END + 8 + 85 + 27 + 7 + 0 + + 0 + False + True + GTK_PACK_END + + + + GtkButton + button1 + True + True + + clicked + on_close_clicked + Thu, 04 Apr 2002 02:05:50 GMT + + GNOME_STOCK_BUTTON_CLOSE + + + + + GtkVBox + vbox3 + False + 0 + + 0 + True + True + + + + GtkLabel + label7 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 + + 5 + False + False + + + + + GtkHSeparator + hseparator3 + + 0 + True + True + + + + + GtkScrolledWindow + scrolledwindow2 + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + GTK_UPDATE_CONTINUOUS + GTK_UPDATE_CONTINUOUS + + 5 + True + True + + + + GtkCList + filters + 450 + 150 + True + 2 + 117,80 + GTK_SELECTION_SINGLE + True + GTK_SHADOW_IN + + + GtkLabel + CList:title + label8 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 + + + + GtkLabel + CList:title + label9 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 + + + + + + GtkHButtonBox + hbuttonbox2 + GTK_BUTTONBOX_SPREAD + 30 + 85 + 27 + 7 + 0 + + 0 + True + True + + + + GtkButton + button3 + True + True + + clicked + on_add_clicked + Thu, 04 Apr 2002 02:04:34 GMT + + + GTK_RELIEF_NORMAL + + + + GtkButton + button4 + True + True + + clicked + on_edit_clicked + Thu, 04 Apr 2002 02:04:53 GMT + + + GTK_RELIEF_NORMAL + + + + GtkButton + button5 + True + True + + clicked + on_delete_clicked + Thu, 04 Apr 2002 02:05:15 GMT + + + GTK_RELIEF_NORMAL + + + + + + +