diff --git a/gramps/gui/viewmanager.py b/gramps/gui/viewmanager.py deleted file mode 100644 index e063dc968..000000000 --- a/gramps/gui/viewmanager.py +++ /dev/null @@ -1,1711 +0,0 @@ -# -# Gramps - a GTK+/GNOME based genealogy program -# -# Copyright (C) 2005-2007 Donald N. Allingham -# Copyright (C) 2008 Brian G. Matherly -# Copyright (C) 2009 Benny Malengier -# Copyright (C) 2010 Nick Hall -# Copyright (C) 2010 Jakim Friant -# Copyright (C) 2012 Gary Burton -# Copyright (C) 2012 Doug Blank -# -# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# - -""" -Manages the main window and the pluggable views -""" - -#------------------------------------------------------------------------- -# -# Standard python modules -# -#------------------------------------------------------------------------- -from collections import defaultdict -import os -import time -import datetime -from io import StringIO -import posixpath - -#------------------------------------------------------------------------- -# -# set up logging -# -#------------------------------------------------------------------------- -import logging -LOG = logging.getLogger(".") - -#------------------------------------------------------------------------- -# -# GNOME modules -# -#------------------------------------------------------------------------- -from gi.repository import Gtk - -#------------------------------------------------------------------------- -# -# GRAMPS modules -# -#------------------------------------------------------------------------- -from gramps.gen.const import GRAMPS_LOCALE as glocale -_ = glocale.translation.sgettext -from gramps.cli.grampscli import CLIManager -from .user import User -from .plug import tool -from gramps.gen.plug import (START, END) -from gramps.gen.plug import REPORT -from gramps.gen.plug.report._constants import standalone_categories -from .plug import (PluginWindows, ReportPluginDialog, ToolPluginDialog) -from .plug.report import report, BookSelector -from .utils import AvailableUpdates -from .pluginmanager import GuiPluginManager -from gramps.gen.relationship import get_relationship_calculator -from .displaystate import DisplayState, RecentDocsMenu -from gramps.gen.const import (HOME_DIR, ICON, URL_BUGTRACKER, URL_HOMEPAGE, - URL_MAILINGLIST, URL_MANUAL_PAGE, URL_WIKISTRING, - WIKI_EXTRAPLUGINS, URL_BUGHOME) -from gramps.gen.constfunc import is_quartz, conv_to_unicode -from gramps.gen.config import config -from gramps.gen.errors import WindowActiveError -from .dialog import ErrorDialog, WarningDialog, QuestionDialog2, InfoDialog -from .widgets import Statusbar -from .undohistory import UndoHistory -from gramps.gen.utils.file import media_path_full -from .dbloader import DbLoader -from .display import display_help, display_url -from .configure import GrampsPreferences -from gramps.gen.db.backup import backup -from gramps.gen.db.exceptions import DbException -from .aboutdialog import GrampsAboutDialog -from .navigator import Navigator -from .views.tags import Tags - -#------------------------------------------------------------------------- -# -# Constants -# -#------------------------------------------------------------------------- -if is_quartz(): - try: - from gi.repository import GtkosxApplication as QuartzApp - _GTKOSXAPPLICATION = True - except: - print ("Failed to import gtk_osxapplication") - _GTKOSXAPPLICATION = False -else: - _GTKOSXAPPLICATION = False - -_UNSUPPORTED = ("Unsupported", _("Unsupported")) - -UIDEFAULT = ''' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -''' - -WIKI_HELP_PAGE_FAQ = '%s_-_FAQ' % URL_MANUAL_PAGE -WIKI_HELP_PAGE_KEY = '%s_-_Keybindings' % URL_MANUAL_PAGE -WIKI_HELP_PAGE_MAN = '%s' % URL_MANUAL_PAGE - -#------------------------------------------------------------------------- -# -# ViewManager -# -#------------------------------------------------------------------------- -class ViewManager(CLIManager): - """ - **Overview** - - The ViewManager is the session manager of the program. - Specifically, it manages the main window of the program. It is closely tied - into the Gtk.UIManager to control all menus and actions. - - The ViewManager controls the various Views within the Gramps programs. - Views are organised in categories. The categories can be accessed via - a sidebar. Within a category, the different views are accesible via the - toolbar of view menu. - - A View is a particular way of looking a information in the Gramps main - window. Each view is separate from the others, and has no knowledge of - the others. - - Examples of current views include: - - - Person View - - Relationship View - - Family View - - Source View - - The View Manager does not have to know the number of views, the type of - views, or any other details about the views. It simply provides the - method of containing each view, and has methods for creating, deleting and - switching between the views. - - """ - - def __init__(self, dbstate, view_category_order, user = None): - """ - The viewmanager is initialised with a dbstate on which GRAMPS is - working, and a fixed view_category_order, which is the order in which - the view categories are accessible in the sidebar. - """ - CLIManager.__init__(self, dbstate, setloader=False, user=user) - if _GTKOSXAPPLICATION: - self.macapp = QuartzApp.Application() - - self.view_category_order = view_category_order - - #set pluginmanager to GUI one - self._pmgr = GuiPluginManager.get_instance() - self.merge_ids = [] - self.toolactions = None - self.tool_menu_ui_id = None - self.reportactions = None - self.report_menu_ui_id = None - - self.active_page = None - self.pages = [] - self.page_lookup = {} - self.views = None - self.current_views = [] # The current view in each category - self.view_changing = False - - self.show_navigator = config.get('interface.view') - self.show_toolbar = config.get('interface.toolbar-on') - self.fullscreen = config.get('interface.fullscreen') - - self.__build_main_window() # sets self.uistate - if self.user is None: - self.user = User(error=ErrorDialog, - callback=self.uistate.pulse_progressbar, - uistate=self.uistate) - self.__connect_signals() - if _GTKOSXAPPLICATION: - self.macapp.ready() - - self.do_reg_plugins(self.dbstate, self.uistate) - #plugins loaded now set relationship class - self.rel_class = get_relationship_calculator() - self.uistate.set_relationship_class() - # Need to call after plugins have been registered - self.uistate.connect('update-available', self.process_updates) - self.check_for_updates() - - def check_for_updates(self): - """ - Check for add-on updates. - """ - howoften = config.get("behavior.check-for-updates") - update = False - if howoften != 0: # update never if zero - y,m,d = list(map(int, - config.get("behavior.last-check-for-updates").split("/"))) - days = (datetime.date.today() - datetime.date(y, m, d)).days - if howoften == 1 and days >= 30: # once a month - update = True - elif howoften == 2 and days >= 7: # once a week - update = True - elif howoften == 3 and days >= 1: # once a day - update = True - elif howoften == 4: # always - update = True - - if update: - AvailableUpdates(self.uistate).start() - - def process_updates(self, addon_update_list): - """ - Called when add-on updates are available. - """ - PluginWindows.UpdateAddons(addon_update_list, self.window) - self.do_reg_plugins(self.dbstate, self.uistate) - - def _errordialog(self, title, errormessage): - """ - Show the error. - In the GUI, the error is shown, and a return happens - """ - ErrorDialog(title, errormessage) - return 1 - - def __build_main_window(self): - """ - Builds the GTK interface - """ - width = config.get('interface.width') - height = config.get('interface.height') - - self.window = Gtk.Window() - self.window.set_icon_from_file(ICON) - self.window.set_has_resize_grip(True) - self.window.set_default_size(width, height) - - vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) - self.window.add(vbox) - hpane = Gtk.Paned() - self.ebox = Gtk.EventBox() - - self.navigator = Navigator(self) - self.ebox.add(self.navigator.get_top()) - hpane.add1(self.ebox) - hpane.show() - - self.notebook = Gtk.Notebook() - self.notebook.set_scrollable(True) - self.notebook.set_show_tabs(False) - self.notebook.show() - self.__init_lists() - self.__build_ui_manager() - - hpane.add2(self.notebook) - self.menubar = self.uimanager.get_widget('/MenuBar') - self.toolbar = self.uimanager.get_widget('/ToolBar') - self.__attach_menubar(vbox) - vbox.pack_start(self.toolbar, False, True, 0) - vbox.pack_start(hpane, True, True, 0) - self.statusbar = Statusbar() - self.statusbar.show() - vbox.pack_end(self.statusbar, False, True, 0) - vbox.show() - - self.uistate = DisplayState(self.window, self.statusbar, - self.uimanager, self) - - # Create history objects - for nav_type in ('Person', 'Family', 'Event', 'Place', 'Source', - 'Citation', 'Repository', 'Note', 'Media'): - self.uistate.register(self.dbstate, nav_type, 0) - - self.dbstate.connect('database-changed', self.uistate.db_changed) - - self.tags = Tags(self.uistate, self.dbstate) - - self.sidebar_menu = self.uimanager.get_widget( - '/MenuBar/ViewMenu/Sidebar/') - - # handle OPEN button, insert it into the toolbar. Unfortunately, - # UIManager has no built in support for and Open Recent button - - openbtn = self.__build_open_button() - self.uistate.set_open_widget(openbtn) - self.toolbar.insert(openbtn, 0) - - self.recent_manager = RecentDocsMenu( - self.uistate, self.dbstate, self._read_recent_file) - self.recent_manager.build() - - self.db_loader = DbLoader(self.dbstate, self.uistate) - - self.__setup_navigator() - - if self.show_toolbar: - self.toolbar.show() - else: - self.toolbar.hide() - - if self.fullscreen: - self.window.fullscreen() - - # Showing the main window is deferred so that - # ArgHandler can work without it always shown - # But we need to realize it here to have Gdk.window handy - self.window.realize() - - def __setup_navigator(self): - """ - If we have enabled te sidebar, show it, and turn off the tabs. If - disabled, hide the sidebar and turn on the tabs. - """ - if self.show_navigator: - self.ebox.show() - else: - self.ebox.hide() - - def __build_open_button(self): - """ - Build the OPEN button. Since GTK's UIManager does not have support for - the Open Recent button, we must build in on our own. - """ - openbtn = Gtk.MenuToolButton.new_from_stock('gramps-db') - openbtn.connect('clicked', self.__open_activate) - openbtn.set_sensitive(False) - openbtn.set_tooltip_text(_("Connect to a recent database")) - openbtn.show() - return openbtn - - def __connect_signals(self): - """ - Connects the signals needed - """ - self.window.connect('delete-event', self.quit) - self.notebook.connect('switch-page', self.view_changed) - if _GTKOSXAPPLICATION: - self.macapp.connect('NSApplicationWillTerminate', self.quit) - - def __init_lists(self): - """ - Initialize the actions lists for the UIManager - """ - self._file_action_list = [ - ('FileMenu', None, _('_Family Trees')), - ('Open', 'gramps-db', _('_Manage Family Trees...'), "o", - _("Manage databases"), self.__open_activate), - ('OpenRecent', None, _('Open _Recent'), None, - _("Open an existing database")), - ('Quit', Gtk.STOCK_QUIT, _('_Quit'), "q", None, - self.quit), - ('ViewMenu', None, _('_View')), - ('EditMenu', None, _('_Edit')), - ('Preferences', Gtk.STOCK_PREFERENCES, _('_Preferences...'), None, - None, self.preferences_activate), - ('HelpMenu', None, _('_Help')), - ('HomePage', None, _('Gramps _Home Page'), None, None, - home_page_activate), - ('MailingLists', None, _('Gramps _Mailing Lists'), None, None, - mailing_lists_activate), - ('ReportBug', None, _('_Report a Bug'), None, None, - report_bug_activate), - ('ExtraPlugins', None, _('_Extra Reports/Tools'), None, None, - extra_plugins_activate), - ('About', Gtk.STOCK_ABOUT, _('_About'), None, None, - self.display_about_box), - ('PluginStatus', None, _('_Plugin Manager'), None, None, - self.__plugin_status), - ('FAQ', None, _('_FAQ'), None, None, faq_activate), - ('KeyBindings', None, _('_Key Bindings'), None, None, key_bindings), - ('UserManual', Gtk.STOCK_HELP, _('_User Manual'), 'F1', None, - manual_activate), - ('TipOfDay', None, _('Tip of the Day'), None, None, - self.tip_of_day_activate), - ] - - self._readonly_action_list = [ - ('Export', 'gramps-export', _('_Export...'), "e", None, - self.export_data), - ('Backup', None, _("Make Backup..."), None, - _("Make a Gramps XML backup of the database"), self.quick_backup), - ('Abandon', Gtk.STOCK_REVERT_TO_SAVED, - _('_Abandon Changes and Quit'), None, None, self.abort), - ('Reports', 'gramps-reports', _('_Reports'), None, - _("Open the reports dialog"), self.reports_clicked), - ('GoMenu', None, _('_Go')), - ('ReportsMenu', None, _('_Reports')), - ('Books', None, _('Books...'), None, None, self.run_book), - ('WindowsMenu', None, _('_Windows')), - ('F2', None, 'F2', "F2", None, self.__keypress), - ('F3', None, 'F3', "F3", None, self.__keypress), - ('F4', None, 'F4', "F4", None, self.__keypress), - ('F5', None, 'F5', "F5", None, self.__keypress), - ('F6', None, 'F6', "F6", None, self.__keypress), - ('F7', None, 'F7', "F7", None, self.__keypress), - ('F8', None, 'F9', "F8", None, self.__keypress), - ('F9', None, 'F9', "F9", None, self.__keypress), - ('F11', None, 'F11', "F11", None, self.__keypress), - ('1', None, '1', "1", None, self.__gocat), - ('2', None, '2', "2", None, self.__gocat), - ('3', None, '3', "3", None, self.__gocat), - ('4', None, '4', "4", None, self.__gocat), - ('5', None, '5', "5", None, self.__gocat), - ('6', None, '6', "6", None, self.__gocat), - ('7', None, '7', "7", None, self.__gocat), - ('8', None, '8', "8", None, self.__gocat), - ('9', None, '9', "9", None, self.__gocat), - ('0', None, '0', "0", None, self.__gocat), - # NOTE: CTRL+ALT+NUMBER is set in src/plugins/sidebar/cat...py - ('BackSpace', None, 'BackSpace', - "BackSpace", None, self.__keypress), - ('Delete', None, 'Delete', - "Delete", None, self.__keypress), - ('Insert', None, 'Insert', - "Insert", None, self.__keypress), - ('F12', None, 'F12', "F12", None, self.__keypress), - ('J', None, 'J', - "J", None, self.__keypress), - ('N', None, 'N', "N", None, - self.__next_view), - ('P', None, 'P', "P", None, - self.__prev_view), - ] - - self._action_action_list = [ - ('Clipboard', Gtk.STOCK_PASTE, _('Clip_board'), "b", - _("Open the Clipboard dialog"), self.clipboard), - ('Import', 'gramps-import', _('_Import...'), "i", None, - self.import_data), - ('Tools', 'gramps-tools', _('_Tools'), None, - _("Open the tools dialog"), self.tools_clicked), - ('BookMenu', None, _('_Bookmarks')), - ('ToolsMenu', None, _('_Tools')), - ('ConfigView', 'gramps-config', _('_Configure...'), - 'c', _('Configure the active view'), - self.config_view), - ] - - self._file_toggle_action_list = [ - ('Navigator', None, _('_Navigator'), "m", None, - self.navigator_toggle, self.show_navigator ), - ('Toolbar', None, _('_Toolbar'), None, None, self.toolbar_toggle, - self.show_toolbar ), - ('Fullscreen', None, _('F_ull Screen'), "F11", None, - self.fullscreen_toggle, self.fullscreen), - ] - - self._undo_action_list = [ - ('Undo', Gtk.STOCK_UNDO, _('_Undo'), 'z', None, - self.undo), - ] - - self._redo_action_list = [ - ('Redo', Gtk.STOCK_REDO, _('_Redo'), 'z', None, - self.redo), - ] - - self._undo_history_action_list = [ - ('UndoHistory', 'gramps-undo-history', - _('Undo History...'), "H", None, self.undo_history), - ] - - def run_book(self, action): - """ - Run a book. - """ - try: - BookSelector(self.dbstate, self.uistate) - except WindowActiveError: - return - - def __keypress(self, action): - """ - Callback that is called on a keypress. It works by extracting the - name of the associated action, and passes that to the active page - (current view) so that it can take the associated action. - """ - name = action.get_name() - try: - self.active_page.call_function(name) - except Exception: - self.uistate.push_message(self.dbstate, - _("Key %s is not bound") % name) - - def __gocat(self, action): - """ - Callback that is called on ctrl+number press. It moves to the - requested category like __next_view/__prev_view. 0 is 10 - """ - cat = int(action.get_name()[-1]) - if cat == 0: - cat = 10 - cat -= 1 - if cat >= len(self.current_views): - #this view is not present - return False - self.goto_page(cat, None) - - def __next_view(self, action): - """ - Callback that is called when the next category action is selected. - It selects the next category as the active category. If we reach the end, - we wrap around to the first. - """ - curpage = self.notebook.get_current_page() - #find cat and view of the current page - for key in self.page_lookup: - if self.page_lookup[key] == curpage: - cat_num, view_num = key - break - #now go to next category - if cat_num >= len(self.current_views)-1: - self.goto_page(0, None) - else: - self.goto_page(cat_num+1, None) - - def __prev_view(self, action): - """ - Callback that is called when the previous category action is selected. - It selects the previous category as the active category. If we reach the - beginning of the list, we wrap around to the last. - """ - curpage = self.notebook.get_current_page() - #find cat and view of the current page - for key in self.page_lookup: - if self.page_lookup[key] == curpage: - cat_num, view_num = key - break - #now go to next category - if cat_num > 0: - self.goto_page(cat_num-1, None) - else: - self.goto_page(len(self.current_views)-1, None) - - def init_interface(self): - """ - Initialize the interface. - """ - self.views = get_available_views() - defaults = views_to_show(self.views, - config.get('preferences.use-last-view')) - self.current_views = defaults[2] - - self.navigator.load_plugins(self.dbstate, self.uistate) - - self.goto_page(defaults[0], defaults[1]) - - if not self.file_loaded: - self.actiongroup.set_visible(False) - self.readonlygroup.set_visible(False) - self.undoactions.set_visible(False) - self.redoactions.set_visible(False) - self.undohistoryactions.set_visible(False) - self.fileactions.set_sensitive(False) - self.__build_tools_menu(self._pmgr.get_reg_tools()) - self.__build_report_menu(self._pmgr.get_reg_reports()) - self._pmgr.connect('plugins-reloaded', - self.__rebuild_report_and_tool_menus) - self.fileactions.set_sensitive(True) - self.uistate.widget.set_sensitive(True) - config.connect("interface.statusbar", self.__statusbar_key_update) - - def __statusbar_key_update(self, client, cnxn_id, entry, data): - """ - Callback function for statusbar key update - """ - self.uistate.modify_statusbar(self.dbstate) - - def post_init_interface(self, show_manager=True): - """ - Showing the main window is deferred so that - ArgHandler can work without it always shown - """ - self.window.show() - if not self.dbstate.db.is_open() and show_manager: - self.__open_activate(None) - - def do_load_plugins(self): - """ - Loads the plugins at initialization time. The plugin status window is - opened on an error if the user has requested. - """ - # load plugins - self.uistate.status_text(_('Loading plugins...')) - error = CLIManager.do_load_plugins(self) - - # get to see if we need to open the plugin status window - if error and config.get('behavior.pop-plugin-status'): - self.__plugin_status() - - self.uistate.push_message(self.dbstate, _('Ready')) - - def do_reg_plugins(self, dbstate, uistate): - """ - Register the plugins at initialization time. The plugin status window - is opened on an error if the user has requested. - """ - # registering plugins - self.uistate.status_text(_('Registering plugins...')) - error = CLIManager.do_reg_plugins(self, dbstate, uistate) - - # get to see if we need to open the plugin status window - if error and config.get('behavior.pop-plugin-status'): - self.__plugin_status() - - self.uistate.push_message(self.dbstate, _('Ready')) - - def quit(self, *obj): - """ - Closes out the program, backing up data - """ - # mark interface insenstitive to prevent unexpected events - self.uistate.set_sensitive(False) - - # backup data, and close the database - self.__backup() - self.dbstate.db.close() - - # have each page save anything, if they need to: - self.__delete_pages() - - # save the current window size - (width, height) = self.window.get_size() - config.set('interface.width', width) - config.set('interface.height', height) - config.save() - Gtk.main_quit() - - def __backup(self): - """ - Backup the current file as a backup file. - """ - if self.dbstate.db.has_changed: - self.uistate.set_busy_cursor(True) - self.uistate.progress.show() - self.uistate.push_message(self.dbstate, _("Autobackup...")) - try: - backup(self.dbstate.db) - except DbException as msg: - ErrorDialog(_("Error saving backup data"), msg) - self.uistate.set_busy_cursor(False) - self.uistate.progress.hide() - - def abort(self, obj=None): - """ - Abandon changes and quit. - """ - if self.dbstate.db.abort_possible: - - dialog = QuestionDialog2( - _("Abort changes?"), - _("Aborting changes will return the database to the state " - "it was before you started this editing session."), - _("Abort changes"), - _("Cancel")) - - if dialog.run(): - self.dbstate.db.disable_signals() - while self.dbstate.db.undo(): - pass - self.quit() - else: - WarningDialog( - _("Cannot abandon session's changes"), - _('Changes cannot be completely abandoned because the ' - 'number of changes made in the session exceeded the ' - 'limit.')) - - def __init_action_group(self, name, actions, sensitive=True, toggles=None): - """ - Initialize an action group for the UIManager - """ - new_group = Gtk.ActionGroup(name=name) - new_group.add_actions(actions) - if toggles: - new_group.add_toggle_actions(toggles) - new_group.set_sensitive(sensitive) - self.uimanager.insert_action_group(new_group, 1) - return new_group - - def __build_ui_manager(self): - """ - Builds the UIManager, and the associated action groups - """ - self.uimanager = Gtk.UIManager() - - accelgroup = self.uimanager.get_accel_group() - - self.actiongroup = self.__init_action_group( - 'MainWindow', self._action_action_list) - self.readonlygroup = self.__init_action_group( - 'AllMainWindow', self._readonly_action_list) - self.undohistoryactions = self.__init_action_group( - 'UndoHistory', self._undo_history_action_list) - self.fileactions = self.__init_action_group( - 'FileWindow', self._file_action_list, - toggles=self._file_toggle_action_list) - self.undoactions = self.__init_action_group( - 'Undo', self._undo_action_list, sensitive=False) - self.redoactions = self.__init_action_group( - 'Redo', self._redo_action_list, sensitive=False) - self.window.add_accel_group(accelgroup) - - self.uimanager.add_ui_from_string(UIDEFAULT) - self.uimanager.ensure_update() - - def __attach_menubar(self, vbox): - vbox.pack_start(self.menubar, False, True, 0) - if _GTKOSXAPPLICATION: - self.menubar.hide() - quit_item = self.uimanager.get_widget("/MenuBar/FileMenu/Quit") - about_item = self.uimanager.get_widget("/MenuBar/HelpMenu/About") - prefs_item = self.uimanager.get_widget("/MenuBar/EditMenu/Preferences") - self.macapp.set_menu_bar(self.menubar) - self.macapp.insert_app_menu_item(about_item, 0) - self.macapp.insert_app_menu_item(prefs_item, 1) - - def preferences_activate(self, obj): - """ - Open the preferences dialog. - """ - try: - GrampsPreferences(self.uistate, self.dbstate) - except WindowActiveError: - return - - def tip_of_day_activate(self, obj): - """ - Display Tip of the day - """ - from .tipofday import TipOfDay - TipOfDay(self.uistate) - - def __plugin_status(self, obj=None, data=None): - """ - Display plugin status dialog - """ - try: - PluginWindows.PluginStatus(self.dbstate, self.uistate, []) - except WindowActiveError: - pass - - def navigator_toggle(self, obj, data=None): - """ - Set the sidebar based on the value of the toggle button. Save the - results in the configuration settings - """ - if obj.get_active(): - self.ebox.show() - config.set('interface.view', True) - self.show_navigator = True - else: - self.ebox.hide() - config.set('interface.view', False) - self.show_navigator = False - config.save() - - def toolbar_toggle(self, obj, data=None): - """ - Set the toolbar based on the value of the toggle button. Save the - results in the configuration settings - """ - if obj.get_active(): - self.toolbar.show() - config.set('interface.toolbar-on', True) - else: - self.toolbar.hide() - config.set('interface.toolbar-on', False) - config.save() - - def fullscreen_toggle(self, obj, data=None): - """ - Set the main Granps window fullscreen based on the value of the - toggle button. Save the setting in the config file. - """ - if obj.get_active(): - self.window.fullscreen() - config.set('interface.fullscreen', True) - else: - self.window.unfullscreen() - config.set('interface.fullscreen', False) - config.save() - - def get_views(self): - """ - Return the view definitions. - """ - return self.views - - def goto_page(self, cat_num, view_num): - """ - Create the page if it doesn't exist and make it the current page. - """ - if view_num is None: - view_num = self.current_views[cat_num] - else: - self.current_views[cat_num] = view_num - - page_num = self.page_lookup.get((cat_num, view_num)) - if page_num is None: - page_def = self.views[cat_num][view_num] - page_num = self.notebook.get_n_pages() - self.page_lookup[(cat_num, view_num)] = page_num - self.__create_page(page_def[0], page_def[1]) - - self.notebook.set_current_page(page_num) - return self.pages[page_num] - - def get_category(self, cat_name): - """ - Return the category number from the given category name. - """ - for cat_num, cat_views in enumerate(self.views): - if cat_name == cat_views[0][0].category[1]: - return cat_num - return None - - def __create_dummy_page(self, pdata, error): - from .views.pageview import DummyPage - return DummyPage(pdata.name, pdata, self.dbstate, self.uistate, - _("View failed to load. Check error output."), error) - - def __create_page(self, pdata, page_def): - """ - Create a new page and set it as the current page. - """ - try: - page = page_def(pdata, self.dbstate, self.uistate) - except: - import traceback - LOG.warn("View '%s' failed to load." % pdata.id) - traceback.print_exc() - page = self.__create_dummy_page(pdata, traceback.format_exc()) - - try: - page_display = page.get_display() - except: - import traceback - print("ERROR: '%s' failed to create view" % pdata.name) - traceback.print_exc() - page = self.__create_dummy_page(pdata, traceback.format_exc()) - page_display = page.get_display() - - page.define_actions() - page.post() - - self.pages.append(page) - - # create icon/label for notebook tab (useful for debugging) - hbox = Gtk.Box() - image = Gtk.Image() - image.set_from_stock(page.get_stock(), Gtk.IconSize.MENU) - hbox.pack_start(image, False, True, 0) - hbox.add(Gtk.Label(label=pdata.name)) - hbox.show_all() - page_num = self.notebook.append_page(page.get_display(), hbox) - return page - - def view_changed(self, notebook, page, page_num): - """ - Called when the notebook page is changed. - """ - if self.view_changing: - return - self.view_changing = True - - cat_num = view_num = None - for key in self.page_lookup: - if self.page_lookup[key] == page_num: - cat_num, view_num = key - break - - # Save last view in configuration - view_id = self.views[cat_num][view_num][0].id - config.set('preferences.last-view', view_id) - last_views = config.get('preferences.last-views') - if len(last_views) != len(self.views): - # If the number of categories has changed then reset the defaults - last_views = [''] * len(self.views) - last_views[cat_num] = view_id - config.set('preferences.last-views', last_views) - config.save() - - self.navigator.view_changed(cat_num, view_num) - self.__change_page(page_num) - self.view_changing = False - - def __change_page(self, page_num): - """ - Perform necessary actions when a page is changed. - """ - if not self.dbstate.open: - return - - self.__disconnect_previous_page() - - self.active_page = self.pages[page_num] - self.active_page.set_active() - self.__connect_active_page(page_num) - - self.uimanager.ensure_update() - if _GTKOSXAPPLICATION: - self.macapp.sync_menubar() - - while Gtk.events_pending(): - Gtk.main_iteration() - - self.active_page.change_page() - - def __delete_pages(self): - """ - Calls on_delete() for each view - """ - for page in self.pages: - page.on_delete() - - def __disconnect_previous_page(self): - """ - Disconnects the previous page, removing the old action groups - and removes the old UI components. - """ - list(map(self.uimanager.remove_ui, self.merge_ids)) - - if self.active_page: - self.active_page.set_inactive() - groups = self.active_page.get_actions() - for grp in groups: - if grp in self.uimanager.get_action_groups(): - self.uimanager.remove_action_group(grp) - - def __connect_active_page(self, page_num): - """ - Inserts the action groups associated with the current page - into the UIManager - """ - for grp in self.active_page.get_actions(): - self.uimanager.insert_action_group(grp, 1) - - uidef = self.active_page.ui_definition() - self.merge_ids = [self.uimanager.add_ui_from_string(uidef)] - - for uidef in self.active_page.additional_ui_definitions(): - mergeid = self.uimanager.add_ui_from_string(uidef) - self.merge_ids.append(mergeid) - - configaction = self.actiongroup.get_action('ConfigView') - if self.active_page.can_configure(): - configaction.set_sensitive(True) - else: - configaction.set_sensitive(False) - - def import_data(self, obj): - """ - Imports a file - """ - if self.dbstate.db.is_open(): - self.db_loader.import_file() - infotxt = self.db_loader.import_info_text() - if infotxt: - InfoDialog(_('Import Statistics'), infotxt, self.window) - self.__post_load() - - def __open_activate(self, obj): - """ - Called when the Open button is clicked, opens the DbManager - """ - from .dbman import DbManager - dialog = DbManager(self.dbstate, self.window) - value = dialog.run() - if value: - (filename, title) = value - filename = conv_to_unicode(filename) - self.db_loader.read_file(filename) - self._post_load_newdb(filename, 'x-directory/normal', title) - - def __post_load(self): - """ - This method is for the common UI post_load, both new files - and added data like imports. - """ - self.dbstate.db.undo_callback = self.__change_undo_label - self.dbstate.db.redo_callback = self.__change_redo_label - self.__change_undo_label(None) - self.__change_redo_label(None) - self.dbstate.db.undo_history_callback = self.undo_history_update - self.undo_history_close() - - def _post_load_newdb(self, filename, filetype, title=None): - """ - The method called after load of a new database. - Inherit CLI method to add GUI part - """ - self._post_load_newdb_nongui(filename, title) - self._post_load_newdb_gui(filename, filetype, title) - - def _post_load_newdb_gui(self, filename, filetype, title=None): - """ - Called after a new database is loaded to do GUI stuff - """ - # GUI related post load db stuff - # Update window title - if filename[-1] == os.path.sep: - filename = filename[:-1] - name = os.path.basename(filename) - if title: - name = title - - if self.dbstate.db.readonly: - msg = "%s (%s) - Gramps" % (name, _('Read Only')) - self.uistate.window.set_title(msg) - self.actiongroup.set_sensitive(False) - else: - msg = "%s - Gramps" % name - self.uistate.window.set_title(msg) - self.actiongroup.set_sensitive(True) - - self.__change_page(self.notebook.get_current_page()) - self.actiongroup.set_visible(True) - self.readonlygroup.set_visible(True) - self.undoactions.set_visible(True) - self.redoactions.set_visible(True) - self.undohistoryactions.set_visible(True) - - self.recent_manager.build() - - # Call common __post_load method for GUI update after a change - self.__post_load() - - def __change_undo_label(self, label): - """ - Change the UNDO label - """ - self.uimanager.remove_action_group(self.undoactions) - self.undoactions = Gtk.ActionGroup(name='Undo') - if label: - self.undoactions.add_actions([ - ('Undo', Gtk.STOCK_UNDO, label, 'z', None, self.undo)]) - else: - self.undoactions.add_actions([ - ('Undo', Gtk.STOCK_UNDO, _('_Undo'), - 'z', None, self.undo)]) - self.undoactions.set_sensitive(False) - self.uimanager.insert_action_group(self.undoactions, 1) - - def __change_redo_label(self, label): - """ - Change the REDO label - """ - self.uimanager.remove_action_group(self.redoactions) - self.redoactions = Gtk.ActionGroup(name='Redo') - if label: - self.redoactions.add_actions([ - ('Redo', Gtk.STOCK_REDO, label, 'z', - None, self.redo)]) - else: - self.redoactions.add_actions([ - ('Redo', Gtk.STOCK_UNDO, _('_Redo'), - 'z', None, self.redo)]) - self.redoactions.set_sensitive(False) - self.uimanager.insert_action_group(self.redoactions, 1) - - def undo_history_update(self): - """ - This function is called to update both the state of - the Undo History menu item (enable/disable) and - the contents of the Undo History window. - """ - try: - # Try updating undo history window if it exists - self.undo_history_window.update() - except AttributeError: - # Let it go: history window does not exist - return - - def undo_history_close(self): - """ - Closes the undo history - """ - try: - # Try closing undo history window if it exists - if self.undo_history_window.opened: - self.undo_history_window.close() - except AttributeError: - # Let it go: history window does not exist - return - - def quick_backup(self, obj): - """ - Make a quick XML back with or without media. - """ - from .dialog import QuestionDialog2 - window = Gtk.Dialog(_("Gramps XML Backup"), - self.uistate.window, - Gtk.DialogFlags.DESTROY_WITH_PARENT, None) - window.set_size_request(400, -1) - ok_button = window.add_button(Gtk.STOCK_OK, - Gtk.ResponseType.APPLY) - close_button = window.add_button(Gtk.STOCK_CLOSE, - Gtk.ResponseType.CLOSE) - vbox = window.get_content_area() - hbox = Gtk.Box() - label = Gtk.Label(label=_("Path:")) - label.set_justify(Gtk.Justification.LEFT) - label.set_size_request(90, -1) - label.set_alignment(0, .5) - hbox.pack_start(label, False, True, 0) - path_entry = Gtk.Entry() - text = config.get('paths.quick-backup-directory') - path_entry.set_text(text) - hbox.pack_start(path_entry, True, True, 0) - file_entry = Gtk.Entry() - button = Gtk.Button() - button.connect("clicked", - lambda widget: self.select_backup_path(widget, path_entry)) - image = Gtk.Image() - image.set_from_stock(Gtk.STOCK_OPEN, Gtk.IconSize.BUTTON) - image.show() - button.add(image) - hbox.pack_end(button, False, True, 0) - vbox.pack_start(hbox, False, True, 0) - hbox = Gtk.Box() - label = Gtk.Label(label=_("File:")) - label.set_justify(Gtk.Justification.LEFT) - label.set_size_request(90, -1) - label.set_alignment(0, .5) - hbox.pack_start(label, False, True, 0) - struct_time = time.localtime() - file_entry.set_text(config.get('paths.quick-backup-filename') % - {"filename": self.dbstate.db.get_dbname(), - "year": struct_time.tm_year, - "month": struct_time.tm_mon, - "day": struct_time.tm_mday, - "hour": struct_time.tm_hour, - "minutes": struct_time.tm_min, - "seconds": struct_time.tm_sec, - "extension": "gpkg", - }) - hbox.pack_end(file_entry, True, True, 0) - vbox.pack_start(hbox, False, True, 0) - hbox = Gtk.Box() - bytes = 0 - mbytes = "0" - for media in self.dbstate.db.iter_media_objects(): - fullname = media_path_full(self.dbstate.db, media.get_path()) - try: - bytes += posixpath.getsize(fullname) - length = len(str(bytes)) - if bytes <= 999999: - mbytes = "< 1" - else: - mbytes = str(bytes)[:(length-6)] - except OSError: - pass - label = Gtk.Label(label=_("Media:")) - label.set_justify(Gtk.Justification.LEFT) - label.set_size_request(90, -1) - label.set_alignment(0, .5) - hbox.pack_start(label, False, True, 0) - include = Gtk.RadioButton(None, "%s (%s %s)" % (_("Include"), - mbytes, _("Megabyte|MB"))) - exclude = Gtk.RadioButton.new_with_mnemonic_from_widget(include, _("Exclude")) - include.connect("toggled", lambda widget: self.media_toggle(widget, file_entry)) - hbox.pack_start(include, False, True, 0) - hbox.pack_end(exclude, False, True, 0) - vbox.pack_start(hbox, False, True, 0) - window.show_all() - d = window.run() - window.hide() - if d == Gtk.ResponseType.APPLY: - # if file exists, ask if overwrite; else abort - basefile = conv_to_unicode(file_entry.get_text()) - basefile = basefile.replace("/", r"-") - filename = os.path.join(conv_to_unicode(path_entry.get_text()), - basefile) - if os.path.exists(filename): - question = QuestionDialog2( - _("Backup file already exists! Overwrite?"), - _("The file '%s' exists.") % filename, - _("Proceed and overwrite"), - _("Cancel the backup")) - yes_no = question.run() - if not yes_no: - return - self.uistate.set_busy_cursor(True) - self.uistate.pulse_progressbar(0) - self.uistate.progress.show() - self.uistate.push_message(self.dbstate, _("Making backup...")) - if include.get_active(): - from gramps.plugins.export.exportpkg import PackageWriter - writer = PackageWriter(self.dbstate.db, filename, self.user) - writer.export() - else: - from gramps.plugins.export.exportxml import XmlWriter - writer = XmlWriter(self.dbstate.db, self.user, - strip_photos=0, compress=1) - writer.write(filename) - self.uistate.set_busy_cursor(False) - self.uistate.progress.hide() - self.uistate.push_message(self.dbstate, _("Backup saved to '%s'") % filename) - config.set('paths.quick-backup-directory', path_entry.get_text()) - else: - self.uistate.push_message(self.dbstate, _("Backup aborted")) - window.destroy() - - def select_backup_path(self, widget, path_entry): - """ - Choose a backup folder. Make sure there is one highlighted in - right pane, otherwise FileChooserDialog will hang. - """ - f = Gtk.FileChooserDialog( - _("Select backup directory"), - action=Gtk.FileChooserAction.SELECT_FOLDER, - buttons=(Gtk.STOCK_CANCEL, - Gtk.ResponseType.CANCEL, - Gtk.STOCK_APPLY, - Gtk.ResponseType.OK)) - mpath = path_entry.get_text() - if not mpath: - mpath = HOME_DIR - f.set_current_folder(os.path.dirname(mpath)) - f.set_filename(os.path.join(mpath, ".")) - status = f.run() - if status == Gtk.ResponseType.OK: - filename = f.get_filename() - if filename: - path_entry.set_text(filename) - f.destroy() - return True - - def media_toggle(self, widget, file_entry): - """ - Toggles media include values in the quick backup dialog. - """ - include = widget.get_active() - extension = "gpkg" if include else "gramps" - filename = file_entry.get_text() - if "." in filename: - base, ext = filename.rsplit(".", 1) - file_entry.set_text("%s.%s" % (base, extension)) - else: - file_entry.set_text("%s.%s" % (filename, extension)) - - def reports_clicked(self, obj): - """ - Displays the Reports dialog - """ - try: - ReportPluginDialog(self.dbstate, self.uistate, []) - except WindowActiveError: - return - - def tools_clicked(self, obj): - """ - Displays the Tools dialog - """ - try: - ToolPluginDialog(self.dbstate, self.uistate, []) - except WindowActiveError: - return - - def clipboard(self, obj): - """ - Displays the Clipboard - """ - from .clipboard import ClipboardWindow - try: - ClipboardWindow(self.dbstate, self.uistate) - except WindowActiveError: - return - - def config_view(self, obj): - """ - Displays the configuration dialog for the active view - """ - self.active_page.configure() - - def undo(self, obj): - """ - Calls the undo function on the database - """ - self.uistate.set_busy_cursor(True) - self.dbstate.db.undo() - self.uistate.set_busy_cursor(False) - - def redo(self, obj): - """ - Calls the redo function on the database - """ - self.uistate.set_busy_cursor(True) - self.dbstate.db.redo() - self.uistate.set_busy_cursor(False) - - def undo_history(self, obj): - """ - Displays the Undo history window - """ - try: - self.undo_history_window = UndoHistory(self.dbstate, self.uistate) - except WindowActiveError: - return - - def export_data(self, obj): - """ - Calls the ExportAssistant to export data - """ - if self.dbstate.db.db_is_open: - from .plug.export import ExportAssistant - try: - ExportAssistant(self.dbstate, self.uistate) - except WindowActiveError: - return - - def __rebuild_report_and_tool_menus(self): - """ - Callback that rebuilds the tools and reports menu - """ - self.__build_tools_menu(self._pmgr.get_reg_tools()) - self.__build_report_menu(self._pmgr.get_reg_reports()) - self.uistate.set_relationship_class() - - def __build_tools_menu(self, tool_menu_list): - """ - Builds a new tools menu - """ - if self.toolactions: - self.uistate.uimanager.remove_action_group(self.toolactions) - self.uistate.uimanager.remove_ui(self.tool_menu_ui_id) - self.toolactions = Gtk.ActionGroup(name='ToolWindow') - (uidef, actions) = self.build_plugin_menu( - 'ToolsMenu', tool_menu_list, tool.tool_categories, - make_plugin_callback) - self.toolactions.add_actions(actions) - self.tool_menu_ui_id = self.uistate.uimanager.add_ui_from_string(uidef) - self.uimanager.insert_action_group(self.toolactions, 1) - self.uistate.uimanager.ensure_update() - - def __build_report_menu(self, report_menu_list): - """ - Builds a new reports menu - """ - if self.reportactions: - self.uistate.uimanager.remove_action_group(self.reportactions) - self.uistate.uimanager.remove_ui(self.report_menu_ui_id) - self.reportactions = Gtk.ActionGroup(name='ReportWindow') - (uidef, actions) = self.build_plugin_menu( - 'ReportsMenu', report_menu_list, standalone_categories, - make_plugin_callback) - self.reportactions.add_actions(actions) - self.report_menu_ui_id = self.uistate.uimanager.add_ui_from_string(uidef) - self.uimanager.insert_action_group(self.reportactions, 1) - self.uistate.uimanager.ensure_update() - - def build_plugin_menu(self, text, item_list, categories, func): - """ - Builds a new XML description for a menu based on the list of plugindata - """ - actions = [] - ofile = StringIO() - ofile.write('' - '' % (text, 'P_'+ text)) - - menu = Gtk.Menu() - menu.show() - - hash_data = defaultdict(list) - for pdata in item_list: - if not pdata.supported: - category = _UNSUPPORTED - else: - category = categories[pdata.category] - hash_data[category].append(pdata) - - # Sort categories, skipping the unsupported - catlist = sorted(item for item in hash_data - if item != _UNSUPPORTED) - - for key in catlist: - new_key = key[0].replace(' ', '-') - ofile.write('' % new_key) - actions.append((new_key, None, key[1])) - pdatas = hash_data[key] - pdatas.sort(key=lambda x: x.name) - for pdata in pdatas: - new_key = pdata.id.replace(' ', '-') - menu_name = ("%s...") % pdata.name - ofile.write('' % new_key) - actions.append((new_key, None, menu_name, None, None, - func(pdata, self.dbstate, self.uistate))) - ofile.write('') - - # If there are any unsupported items we add separator - # and the unsupported category at the end of the menu - if _UNSUPPORTED in hash_data: - ofile.write('') - ofile.write('' % _UNSUPPORTED[0]) - actions.append((_UNSUPPORTED[0], None, _UNSUPPORTED[1])) - pdatas = hash_data[_UNSUPPORTED] - pdatas.sort(key=lambda x: x.name) - for pdata in pdatas: - new_key = pdata.id.replace(' ', '-') - menu_name = ("%s...") % pdata.name - ofile.write('' % new_key) - actions.append((new_key, None, menu_name, None, None, - func(pdata, self.dbstate, self.uistate))) - ofile.write('') - - ofile.write('') - return (ofile.getvalue(), actions) - - def display_about_box(self, obj): - """Display the About box.""" - about = GrampsAboutDialog(self.uistate.window) - about.run() - about.destroy() - -def key_bindings(obj): - """ - Display key bindings - """ - display_help(webpage=WIKI_HELP_PAGE_KEY) - -def manual_activate(obj): - """ - Display the GRAMPS manual - """ - display_help(webpage=WIKI_HELP_PAGE_MAN) - -def report_bug_activate(obj): - """ - Display the bug tracker web site - """ - display_url(URL_BUGTRACKER) - -def home_page_activate(obj): - """ - Display the GRAMPS home page - """ - display_url(URL_HOMEPAGE) - -def mailing_lists_activate(obj): - """ - Display the mailing list web page - """ - display_url(URL_MAILINGLIST) - -def extra_plugins_activate(obj): - """ - Display the wiki page with extra plugins - """ - display_url(URL_WIKISTRING+WIKI_EXTRAPLUGINS) - -def faq_activate(obj): - """ - Display FAQ - """ - display_help(webpage=WIKI_HELP_PAGE_FAQ) - -def run_plugin(pdata, dbstate, uistate): - """ - run a plugin based on it's PluginData: - 1/ load plugin. - 2/ the report is run - """ - pmgr = GuiPluginManager.get_instance() - mod = pmgr.load_plugin(pdata) - if not mod: - #import of plugin failed - ErrorDialog( - _('Failed Loading Plugin'), - _('The plugin %(name)s did not load and reported an error.\n\n' - '%(error_msg)s\n\n' - 'If you are unable to fix the fault yourself then you can ' - 'submit a bug at %(gramps_bugtracker_url)s or contact ' - 'the plugin author (%(firstauthoremail)s).\n\n' - 'If you do not want Gramps to try and load this plugin again, ' - 'you can hide it by using the Plugin Manager on the ' - 'Help menu.') % { - 'name': pdata.name, - 'gramps_bugtracker_url' : URL_BUGHOME, - 'firstauthoremail': pdata.authors_email[0] if - pdata.authors_email else '...', - 'error_msg': pmgr.get_fail_list()[-1][1][1]}) - return - - if pdata.ptype == REPORT: - report(dbstate, uistate, uistate.get_active('Person'), - getattr(mod, pdata.reportclass), - getattr(mod, pdata.optionclass), - pdata.name, pdata.id, - pdata.category, pdata.require_active, - ) - else: - tool.gui_tool(dbstate = dbstate, user = User(uistate = uistate), - tool_class = getattr(mod, pdata.toolclass), - options_class = getattr(mod, pdata.optionclass), - translated_name = pdata.name, - name = pdata.id, - category = pdata.category, - callback = dbstate.db.request_rebuild) - -def make_plugin_callback(pdata, dbstate, uistate): - """ - Makes a callback for a report/tool menu item - """ - return lambda x: run_plugin(pdata, dbstate, uistate) - -def get_available_views(): - """ - Query the views and determine what views to show and in which order - - :Returns: a list of lists containing tuples (view_id, viewclass) - """ - pmgr = GuiPluginManager.get_instance() - view_list = pmgr.get_reg_views() - viewstoshow = defaultdict(list) - for pdata in view_list: - mod = pmgr.load_plugin(pdata) - if not mod or not hasattr(mod, pdata.viewclass): - #import of plugin failed - try: - lasterror = pmgr.get_fail_list()[-1][1][1] - except: - lasterror = '*** No error found, probably error in gpr.py file ***' - ErrorDialog( - _('Failed Loading View'), - _('The view %(name)s did not load and reported an error.\n\n' - '%(error_msg)s\n\n' - 'If you are unable to fix the fault yourself then you can ' - 'submit a bug at %(gramps_bugtracker_url)s or contact ' - 'the view author (%(firstauthoremail)s).\n\n' - 'If you do not want Gramps to try and load this view again, ' - 'you can hide it by using the Plugin Manager on the ' - 'Help menu.') % { - 'name': pdata.name, - 'gramps_bugtracker_url' : URL_BUGHOME, - 'firstauthoremail': pdata.authors_email[0] if - pdata.authors_email else '...', - 'error_msg': lasterror}) - continue - viewclass = getattr(mod, pdata.viewclass) - - # pdata.category is (string, trans-string): - if pdata.order == START: - viewstoshow[pdata.category[0]].insert(0, (pdata, viewclass) ) - else: - viewstoshow[pdata.category[0]].append( (pdata, viewclass) ) - - # First, get those in order defined, if exists: - resultorder = [viewstoshow[cat] - for cat in config.get("interface.view-categories") - if cat in viewstoshow] - - # Next, get the rest in some order: - resultorder.extend(viewstoshow[cat] - for cat in sorted(viewstoshow.keys()) - if viewstoshow[cat] not in resultorder) - return resultorder - -def views_to_show(views, use_last=True): - """ - Determine based on preference setting which views should be shown - """ - current_cat = 0 - current_cat_view = 0 - default_cat_views = [0] * len(views) - if use_last: - current_page_id = config.get('preferences.last-view') - default_page_ids = config.get('preferences.last-views') - found = False - for indexcat, cat_views in enumerate(views): - cat_view = 0 - for pdata, page_def in cat_views: - if not found: - if pdata.id == current_page_id: - current_cat = indexcat - current_cat_view = cat_view - default_cat_views[indexcat] = cat_view - found = True - break - if pdata.id in default_page_ids: - default_cat_views[indexcat] = cat_view - cat_view += 1 - if not found: - current_cat = 0 - current_cat_view = 0 - return current_cat, current_cat_view, default_cat_views diff --git a/po/fr.po b/po/fr.po index 2f221b92b..e7c8639cd 100644 --- a/po/fr.po +++ b/po/fr.po @@ -24,8 +24,8 @@ msgid "" msgstr "" "Project-Id-Version: 3.4.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-03-19 16:13+0100\n" -"PO-Revision-Date: 2015-03-19 16:17+0100\n" +"POT-Creation-Date: 2015-04-28 20:00+0200\n" +"PO-Revision-Date: 2015-04-28 20:03+0100\n" "Last-Translator: \n" "Language-Team: French \n" "Language: fr\n" @@ -117,7 +117,7 @@ msgstr "Édition des signets" #: ../src/gui/editors/displaytabs/backreflist.py:62 #: ../src/gui/editors/displaytabs/nameembedlist.py:72 #: ../src/gui/editors/displaytabs/personrefembedlist.py:63 -#: ../src/gui/plug/_guioptions.py:1111 +#: ../src/gui/plug/_guioptions.py:1122 #: ../src/gui/plug/_windows.py:128 #: ../src/gui/plug/_windows.py:1093 #: ../src/gui/selectors/selectperson.py:74 @@ -133,7 +133,7 @@ msgstr "Édition des signets" #: ../src/plugins/tool/RemoveUnused.py:200 #: ../src/plugins/tool/Verify.py:520 #: ../src/plugins/view/repoview.py:82 -#: ../src/plugins/webreport/NarrativeWeb.py:6423 +#: ../src/plugins/webreport/NarrativeWeb.py:6429 #: ../src/Filters/SideBar/_PersonSidebarFilter.py:126 #: ../src/Filters/SideBar/_RepoSidebarFilter.py:92 msgid "Name" @@ -149,8 +149,8 @@ msgstr "Nom " #: ../src/gui/editors/displaytabs/eventembedlist.py:77 #: ../src/gui/editors/displaytabs/personrefembedlist.py:64 #: ../src/gui/editors/displaytabs/repoembedlist.py:67 -#: ../src/gui/plug/_guioptions.py:1112 -#: ../src/gui/plug/_guioptions.py:1289 +#: ../src/gui/plug/_guioptions.py:1123 +#: ../src/gui/plug/_guioptions.py:1300 #: ../src/gui/selectors/selectcitation.py:67 #: ../src/gui/selectors/selectevent.py:66 #: ../src/gui/selectors/selectfamily.py:61 @@ -700,8 +700,8 @@ msgstr "" #: ../src/plugins/view/relview.py:995 #: ../src/plugins/view/relview.py:1042 #: ../src/plugins/webreport/NarrativeWeb.py:395 -#: ../src/plugins/webreport/NarrativeWeb.py:2363 -#: ../src/plugins/webreport/NarrativeWeb.py:2517 +#: ../src/plugins/webreport/NarrativeWeb.py:2369 +#: ../src/plugins/webreport/NarrativeWeb.py:2523 msgid "Unknown" msgstr "Inconnu" @@ -938,7 +938,7 @@ msgstr "La version traduite du calculateur de relations n'est pas disponible pou #: ../src/plugins/textreport/TagReport.py:211 #: ../src/plugins/view/familyview.py:80 #: ../src/plugins/view/relview.py:883 -#: ../src/plugins/webreport/NarrativeWeb.py:6321 +#: ../src/plugins/webreport/NarrativeWeb.py:6327 #: ../src/Filters/SideBar/_FamilySidebarFilter.py:112 #: ../src/glade/editfamily.glade.h:5 msgid "Father" @@ -962,7 +962,7 @@ msgstr "Père " #: ../src/plugins/textreport/TagReport.py:217 #: ../src/plugins/view/familyview.py:81 #: ../src/plugins/view/relview.py:884 -#: ../src/plugins/webreport/NarrativeWeb.py:6335 +#: ../src/plugins/webreport/NarrativeWeb.py:6341 #: ../src/Filters/SideBar/_FamilySidebarFilter.py:113 #: ../src/glade/editfamily.glade.h:12 msgid "Mother" @@ -983,7 +983,7 @@ msgstr "Conjoint " #: ../src/Reorder.py:41 #: ../src/plugins/textreport/TagReport.py:223 #: ../src/plugins/view/familyview.py:82 -#: ../src/plugins/webreport/NarrativeWeb.py:6005 +#: ../src/plugins/webreport/NarrativeWeb.py:6011 #: ../src/Filters/SideBar/_FamilySidebarFilter.py:115 msgid "Relationship" msgstr "Relation " @@ -1016,7 +1016,7 @@ msgstr "Non-disponible" #: ../src/gui/editors/editaddress.py:156 #: ../src/plugins/gramplet/RepositoryDetails.py:123 #: ../src/plugins/textreport/FamilyGroup.py:325 -#: ../src/plugins/webreport/NarrativeWeb.py:6736 +#: ../src/plugins/webreport/NarrativeWeb.py:6742 #: ../src/Filters/SideBar/_RepoSidebarFilter.py:94 msgid "Address" msgstr "Adresse " @@ -1042,7 +1042,7 @@ msgstr "Emplacement" #: ../src/plugins/quickview/References.py:87 #: ../src/plugins/textreport/PlaceReport.py:388 #: ../src/plugins/webreport/NarrativeWeb.py:374 -#: ../src/plugins/webreport/NarrativeWeb.py:976 +#: ../src/plugins/webreport/NarrativeWeb.py:982 #: ../src/Filters/SideBar/_PersonSidebarFilter.py:133 msgid "Event" msgstr "Événement " @@ -1056,7 +1056,7 @@ msgstr "Événement " #: ../src/gui/editors/displaytabs/eventembedlist.py:79 #: ../src/gui/editors/displaytabs/familyldsembedlist.py:55 #: ../src/gui/editors/displaytabs/ldsembedlist.py:66 -#: ../src/gui/plug/_guioptions.py:1288 +#: ../src/gui/plug/_guioptions.py:1299 #: ../src/gui/selectors/selectevent.py:64 #: ../src/gui/views/treemodels/placemodel.py:304 #: ../src/plugins/export/ExportCsv.py:479 @@ -1076,9 +1076,9 @@ msgstr "Événement " #: ../src/plugins/view/eventview.py:85 #: ../src/plugins/view/placetreeview.py:70 #: ../src/plugins/webreport/NarrativeWeb.py:383 -#: ../src/plugins/webreport/NarrativeWeb.py:978 -#: ../src/plugins/webreport/NarrativeWeb.py:1226 -#: ../src/plugins/webreport/NarrativeWeb.py:1256 +#: ../src/plugins/webreport/NarrativeWeb.py:984 +#: ../src/plugins/webreport/NarrativeWeb.py:1232 +#: ../src/plugins/webreport/NarrativeWeb.py:1262 #: ../src/Filters/SideBar/_EventSidebarFilter.py:97 #: ../src/glade/editevent.glade.h:11 msgid "Place" @@ -1182,14 +1182,14 @@ msgstr "Ref. Événement" #: ../src/gui/configure.py:554 #: ../src/gui/editors/displaytabs/surnametab.py:76 #: ../src/gui/plug/_guioptions.py:88 -#: ../src/gui/plug/_guioptions.py:1437 +#: ../src/gui/plug/_guioptions.py:1448 #: ../src/plugins/drawreport/StatisticsChart.py:318 #: ../src/plugins/export/ExportCsv.py:355 #: ../src/plugins/import/ImportCsv.py:170 #: ../src/plugins/quickview/FilterByName.py:318 -#: ../src/plugins/webreport/NarrativeWeb.py:2875 -#: ../src/plugins/webreport/NarrativeWeb.py:3957 -#: ../src/plugins/webreport/NarrativeWeb.py:5221 +#: ../src/plugins/webreport/NarrativeWeb.py:2881 +#: ../src/plugins/webreport/NarrativeWeb.py:3963 +#: ../src/plugins/webreport/NarrativeWeb.py:5227 msgid "Surname" msgstr "Nom de famille" @@ -1218,13 +1218,13 @@ msgstr "Texte" #: ../src/plugins/textreport/TagReport.py:440 #: ../src/plugins/view/mediaview.py:128 #: ../src/plugins/view/view.gpr.py:86 -#: ../src/plugins/webreport/NarrativeWeb.py:1763 -#: ../src/plugins/webreport/NarrativeWeb.py:1821 -#: ../src/plugins/webreport/NarrativeWeb.py:1879 -#: ../src/plugins/webreport/NarrativeWeb.py:1917 -#: ../src/plugins/webreport/NarrativeWeb.py:2177 -#: ../src/plugins/webreport/NarrativeWeb.py:4399 -#: ../src/plugins/webreport/NarrativeWeb.py:4521 +#: ../src/plugins/webreport/NarrativeWeb.py:1769 +#: ../src/plugins/webreport/NarrativeWeb.py:1827 +#: ../src/plugins/webreport/NarrativeWeb.py:1885 +#: ../src/plugins/webreport/NarrativeWeb.py:1923 +#: ../src/plugins/webreport/NarrativeWeb.py:2183 +#: ../src/plugins/webreport/NarrativeWeb.py:4405 +#: ../src/plugins/webreport/NarrativeWeb.py:4527 msgid "Media" msgstr "Media" @@ -1285,9 +1285,9 @@ msgstr "%(frel)s %(mrel)s" #: ../src/plugins/tool/EventCmp.py:250 #: ../src/plugins/view/geography.gpr.py:56 #: ../src/plugins/webreport/NarrativeWeb.py:384 -#: ../src/plugins/webreport/NarrativeWeb.py:3109 -#: ../src/plugins/webreport/NarrativeWeb.py:3663 -#: ../src/plugins/webreport/NarrativeWeb.py:6004 +#: ../src/plugins/webreport/NarrativeWeb.py:3115 +#: ../src/plugins/webreport/NarrativeWeb.py:3669 +#: ../src/plugins/webreport/NarrativeWeb.py:6010 #: ../src/glade/editpersonref.glade.h:10 msgid "Person" msgstr "Individu " @@ -1320,7 +1320,7 @@ msgstr "Individu " #: ../src/plugins/view/geography.gpr.py:104 #: ../src/plugins/view/relview.py:1318 #: ../src/plugins/view/relview.py:1340 -#: ../src/plugins/webreport/NarrativeWeb.py:3110 +#: ../src/plugins/webreport/NarrativeWeb.py:3116 #: ../src/glade/editldsord.glade.h:8 msgid "Family" msgstr "Famille " @@ -1399,12 +1399,12 @@ msgstr "Dépôt " #: ../src/plugins/view/noteview.py:79 #: ../src/plugins/view/repoview.py:84 #: ../src/plugins/webreport/NarrativeWeb.py:391 -#: ../src/plugins/webreport/NarrativeWeb.py:1253 -#: ../src/plugins/webreport/NarrativeWeb.py:1560 -#: ../src/plugins/webreport/NarrativeWeb.py:2259 -#: ../src/plugins/webreport/NarrativeWeb.py:2732 -#: ../src/plugins/webreport/NarrativeWeb.py:3660 -#: ../src/plugins/webreport/NarrativeWeb.py:6664 +#: ../src/plugins/webreport/NarrativeWeb.py:1259 +#: ../src/plugins/webreport/NarrativeWeb.py:1566 +#: ../src/plugins/webreport/NarrativeWeb.py:2265 +#: ../src/plugins/webreport/NarrativeWeb.py:2738 +#: ../src/plugins/webreport/NarrativeWeb.py:3666 +#: ../src/plugins/webreport/NarrativeWeb.py:6670 #: ../src/Filters/SideBar/_EventSidebarFilter.py:94 #: ../src/Filters/SideBar/_MediaSidebarFilter.py:89 #: ../src/Filters/SideBar/_RepoSidebarFilter.py:93 @@ -1424,7 +1424,7 @@ msgstr "Type" #: ../src/plugins/textreport/TagReport.py:457 #: ../src/plugins/view/mediaview.py:93 #: ../src/plugins/view/sourceview.py:79 -#: ../src/plugins/webreport/NarrativeWeb.py:2731 +#: ../src/plugins/webreport/NarrativeWeb.py:2737 #: ../src/Filters/SideBar/_SourceSidebarFilter.py:80 #: ../src/Filters/SideBar/_MediaSidebarFilter.py:88 msgid "Title" @@ -1437,8 +1437,8 @@ msgstr "Titre" #: ../src/plugins/lib/libmetadata.py:161 #: ../src/plugins/tool/PatchNames.py:405 #: ../src/plugins/webreport/NarrativeWeb.py:393 -#: ../src/plugins/webreport/NarrativeWeb.py:1312 -#: ../src/plugins/webreport/NarrativeWeb.py:1561 +#: ../src/plugins/webreport/NarrativeWeb.py:1318 +#: ../src/plugins/webreport/NarrativeWeb.py:1567 msgid "Value" msgstr "Valeur" @@ -1515,7 +1515,7 @@ msgstr "" # L'espace finale est pour précéder le « : » codé en dur dans certains contextes. #: ../src/ToolTips.py:150 -#: ../src/plugins/webreport/NarrativeWeb.py:2659 +#: ../src/plugins/webreport/NarrativeWeb.py:2665 msgid "Telephone" msgstr "Téléphone " @@ -1534,8 +1534,8 @@ msgstr "Sources dans le dépôt" #: ../src/plugins/textreport/TagReport.py:130 #: ../src/plugins/view/relview.py:614 #: ../src/plugins/webreport/NarrativeWeb.py:367 -#: ../src/plugins/webreport/NarrativeWeb.py:2903 -#: ../src/plugins/webreport/NarrativeWeb.py:5225 +#: ../src/plugins/webreport/NarrativeWeb.py:2909 +#: ../src/plugins/webreport/NarrativeWeb.py:5231 msgid "Birth" msgstr "Naissance" @@ -1600,7 +1600,7 @@ msgstr "Voir les détails" #: ../src/gui/editors/editperson.py:327 #: ../src/gui/views/treemodels/peoplemodel.py:96 #: ../src/Merge/mergeperson.py:62 -#: ../src/plugins/webreport/NarrativeWeb.py:5386 +#: ../src/plugins/webreport/NarrativeWeb.py:5392 #: ../src/Filters/SideBar/_PersonSidebarFilter.py:89 msgid "male" msgstr "masculin" @@ -1609,7 +1609,7 @@ msgstr "masculin" #: ../src/gui/editors/editperson.py:326 #: ../src/gui/views/treemodels/peoplemodel.py:96 #: ../src/Merge/mergeperson.py:62 -#: ../src/plugins/webreport/NarrativeWeb.py:5387 +#: ../src/plugins/webreport/NarrativeWeb.py:5393 #: ../src/Filters/SideBar/_PersonSidebarFilter.py:89 msgid "female" msgstr "féminin" @@ -1635,7 +1635,7 @@ msgstr "Haut" #: ../src/Utils.py:94 #: ../src/gui/editors/editcitation.py:198 -#: ../src/plugins/webreport/NarrativeWeb.py:2364 +#: ../src/plugins/webreport/NarrativeWeb.py:2370 msgid "Normal" msgstr "Normal" @@ -1698,7 +1698,7 @@ msgstr "Les données peuvent être récupérées en annulant l'opération, ou en #: ../src/plugins/textreport/DetDescendantReport.py:599 #: ../src/plugins/textreport/IndivComplete.py:365 #: ../src/plugins/view/relview.py:652 -#: ../src/plugins/webreport/NarrativeWeb.py:5388 +#: ../src/plugins/webreport/NarrativeWeb.py:5394 #: ../src/Filters/SideBar/_PersonSidebarFilter.py:89 msgid "unknown" msgstr "inconnu" @@ -3149,9 +3149,9 @@ msgstr "Rang ou statut" #: ../src/plugins/tool/SortEvents.py:59 #: ../src/plugins/view/eventview.py:81 #: ../src/plugins/webreport/NarrativeWeb.py:373 -#: ../src/plugins/webreport/NarrativeWeb.py:979 -#: ../src/plugins/webreport/NarrativeWeb.py:1227 -#: ../src/plugins/webreport/NarrativeWeb.py:2260 +#: ../src/plugins/webreport/NarrativeWeb.py:985 +#: ../src/plugins/webreport/NarrativeWeb.py:1233 +#: ../src/plugins/webreport/NarrativeWeb.py:2266 #: ../src/Filters/SideBar/_EventSidebarFilter.py:93 msgid "Description" msgstr "Description" @@ -3331,7 +3331,7 @@ msgstr "entre" #: ../src/gen/lib/date.py:453 #: ../src/plugins/quickview/all_relations.py:283 #: ../src/plugins/view/relview.py:976 -#: ../src/plugins/webreport/NarrativeWeb.py:1152 +#: ../src/plugins/webreport/NarrativeWeb.py:1158 msgid "and" msgstr "et" @@ -3517,8 +3517,8 @@ msgstr "Juridique" #: ../src/gen/lib/eventtype.py:155 #: ../src/gen/lib/eventtype.py:197 #: ../src/plugins/gramplet/bottombar.gpr.py:119 -#: ../src/plugins/webreport/NarrativeWeb.py:2764 -#: ../src/plugins/webreport/NarrativeWeb.py:6737 +#: ../src/plugins/webreport/NarrativeWeb.py:2770 +#: ../src/plugins/webreport/NarrativeWeb.py:6743 msgid "Residence" msgstr "Résidence" @@ -3535,8 +3535,8 @@ msgstr "Autre" #: ../src/plugins/view/relview.py:625 #: ../src/plugins/view/relview.py:650 #: ../src/plugins/webreport/NarrativeWeb.py:371 -#: ../src/plugins/webreport/NarrativeWeb.py:2906 -#: ../src/plugins/webreport/NarrativeWeb.py:5228 +#: ../src/plugins/webreport/NarrativeWeb.py:2912 +#: ../src/plugins/webreport/NarrativeWeb.py:5234 msgid "Death" msgstr "Décès" @@ -3678,7 +3678,7 @@ msgstr "Testament / Inventaire après décès" #: ../src/plugins/export/ExportCsv.py:478 #: ../src/plugins/import/ImportCsv.py:228 #: ../src/plugins/textreport/FamilyGroup.py:383 -#: ../src/plugins/webreport/NarrativeWeb.py:3111 +#: ../src/plugins/webreport/NarrativeWeb.py:3117 msgid "Marriage" msgstr "Mariage" @@ -3705,7 +3705,7 @@ msgid "Engagement" msgstr "Fiançailles" #: ../src/gen/lib/eventtype.py:206 -#: ../src/plugins/webreport/NarrativeWeb.py:3112 +#: ../src/plugins/webreport/NarrativeWeb.py:3118 msgid "Divorce" msgstr "Divorce" @@ -4362,7 +4362,7 @@ msgstr "Barre latérale" #. add miscellaneous column #: ../src/gen/plug/_pluginreg.py:484 #: ../src/plugins/gramplet/FaqGramplet.py:62 -#: ../src/plugins/webreport/NarrativeWeb.py:1920 +#: ../src/plugins/webreport/NarrativeWeb.py:1926 msgid "Miscellaneous" msgstr "Divers" @@ -4427,14 +4427,14 @@ msgstr "Le fichier %s est déjà ouvert, fermez-le d'abord." #: ../src/plugins/docgen/SvgDrawDoc.py:81 #: ../src/plugins/export/ExportCsv.py:303 #: ../src/plugins/export/ExportCsv.py:307 -#: ../src/plugins/export/ExportGedcom.py:1445 +#: ../src/plugins/export/ExportGedcom.py:1457 #: ../src/plugins/export/ExportGeneWeb.py:97 #: ../src/plugins/export/ExportGeneWeb.py:101 #: ../src/plugins/export/ExportVCalendar.py:104 #: ../src/plugins/export/ExportVCalendar.py:108 #: ../src/plugins/export/ExportVCard.py:70 #: ../src/plugins/export/ExportVCard.py:74 -#: ../src/plugins/webreport/NarrativeWeb.py:7011 +#: ../src/plugins/webreport/NarrativeWeb.py:7017 #, python-format msgid "Could not create %s" msgstr "Impossible de créer %s" @@ -4868,10 +4868,10 @@ msgstr "Références bibliographiques" #: ../src/gen/plug/report/utils.py:142 #: ../src/plugins/textreport/IndivComplete.py:567 #: ../src/plugins/textreport/SimpleBookTitle.py:105 -#: ../src/plugins/webreport/NarrativeWeb.py:1961 -#: ../src/plugins/webreport/NarrativeWeb.py:2146 -#: ../src/plugins/webreport/NarrativeWeb.py:2200 +#: ../src/plugins/webreport/NarrativeWeb.py:1967 +#: ../src/plugins/webreport/NarrativeWeb.py:2152 #: ../src/plugins/webreport/NarrativeWeb.py:2206 +#: ../src/plugins/webreport/NarrativeWeb.py:2212 msgid "Could not add photo to page" msgstr "Impossible d'ajouter une photo à cette page" @@ -5061,7 +5061,7 @@ msgstr "Définition de format invalide ou incomplète." #: ../src/plugins/view/placetreeview.py:73 #: ../src/plugins/view/repoview.py:87 #: ../src/plugins/webreport/NarrativeWeb.py:377 -#: ../src/plugins/webreport/NarrativeWeb.py:1413 +#: ../src/plugins/webreport/NarrativeWeb.py:1419 #: ../src/Filters/SideBar/_PlaceSidebarFilter.py:89 msgid "Locality" msgstr "Lieu-dit " @@ -5100,7 +5100,7 @@ msgstr "Région/Départ. (Comté) " #: ../src/plugins/view/placetreeview.py:77 #: ../src/plugins/view/repoview.py:90 #: ../src/plugins/webreport/NarrativeWeb.py:370 -#: ../src/plugins/webreport/NarrativeWeb.py:3374 +#: ../src/plugins/webreport/NarrativeWeb.py:3380 #: ../src/Filters/SideBar/_PlaceSidebarFilter.py:93 msgid "Country" msgstr "Pays " @@ -5210,7 +5210,7 @@ msgstr "Exemple" #: ../src/plugins/textreport/IndivComplete.py:623 #: ../src/plugins/textreport/KinshipReport.py:347 #: ../src/plugins/textreport/NumberOfAncestorsReport.py:201 -#: ../src/plugins/webreport/NarrativeWeb.py:8041 +#: ../src/plugins/webreport/NarrativeWeb.py:8047 #: ../src/plugins/webreport/WebCal.py:1344 msgid "Name format" msgstr "Format des noms " @@ -5651,7 +5651,7 @@ msgstr "Nom de l'arbre familial" #: ../src/gui/plug/_windows.py:183 #: ../src/plugins/quickview/AgeOnDate.py:55 #: ../src/plugins/webreport/NarrativeWeb.py:388 -#: ../src/plugins/webreport/NarrativeWeb.py:1257 +#: ../src/plugins/webreport/NarrativeWeb.py:1263 msgid "Status" msgstr "Statut" @@ -6271,7 +6271,7 @@ msgstr "Test du filtre" #: ../src/plugins/textreport/BirthdayReport.py:372 #: ../src/plugins/textreport/IndivComplete.py:609 #: ../src/plugins/tool/SortEvents.py:168 -#: ../src/plugins/webreport/NarrativeWeb.py:8019 +#: ../src/plugins/webreport/NarrativeWeb.py:8025 #: ../src/plugins/webreport/WebCal.py:1322 msgid "Filter" msgstr "Filtre" @@ -6378,13 +6378,13 @@ msgstr "Configuration" #: ../src/plugins/view/eventview.py:84 #: ../src/plugins/view/mediaview.py:97 #: ../src/plugins/webreport/NarrativeWeb.py:372 -#: ../src/plugins/webreport/NarrativeWeb.py:977 -#: ../src/plugins/webreport/NarrativeWeb.py:1225 -#: ../src/plugins/webreport/NarrativeWeb.py:1254 -#: ../src/plugins/webreport/NarrativeWeb.py:2367 -#: ../src/plugins/webreport/NarrativeWeb.py:3661 -#: ../src/plugins/webreport/NarrativeWeb.py:4428 -#: ../src/plugins/webreport/NarrativeWeb.py:5773 +#: ../src/plugins/webreport/NarrativeWeb.py:983 +#: ../src/plugins/webreport/NarrativeWeb.py:1231 +#: ../src/plugins/webreport/NarrativeWeb.py:1260 +#: ../src/plugins/webreport/NarrativeWeb.py:2373 +#: ../src/plugins/webreport/NarrativeWeb.py:3667 +#: ../src/plugins/webreport/NarrativeWeb.py:4434 +#: ../src/plugins/webreport/NarrativeWeb.py:5779 #: ../src/Filters/SideBar/_EventSidebarFilter.py:96 #: ../src/Filters/SideBar/_MediaSidebarFilter.py:91 #: ../src/glade/editcitation.glade.h:3 @@ -6412,12 +6412,12 @@ msgstr "Éditer la date" #: ../src/plugins/view/eventview.py:118 #: ../src/plugins/view/geography.gpr.py:88 #: ../src/plugins/view/view.gpr.py:41 -#: ../src/plugins/webreport/NarrativeWeb.py:1759 -#: ../src/plugins/webreport/NarrativeWeb.py:1818 -#: ../src/plugins/webreport/NarrativeWeb.py:1870 -#: ../src/plugins/webreport/NarrativeWeb.py:3628 -#: ../src/plugins/webreport/NarrativeWeb.py:3816 -#: ../src/plugins/webreport/NarrativeWeb.py:6258 +#: ../src/plugins/webreport/NarrativeWeb.py:1765 +#: ../src/plugins/webreport/NarrativeWeb.py:1824 +#: ../src/plugins/webreport/NarrativeWeb.py:1876 +#: ../src/plugins/webreport/NarrativeWeb.py:3634 +#: ../src/plugins/webreport/NarrativeWeb.py:3822 +#: ../src/plugins/webreport/NarrativeWeb.py:6264 msgid "Events" msgstr "Événements" @@ -6501,8 +6501,8 @@ msgstr "Fusion" #: ../src/plugins/view/noteview.py:107 #: ../src/plugins/view/view.gpr.py:101 #: ../src/plugins/webreport/NarrativeWeb.py:379 -#: ../src/plugins/webreport/NarrativeWeb.py:980 -#: ../src/plugins/webreport/NarrativeWeb.py:1562 +#: ../src/plugins/webreport/NarrativeWeb.py:986 +#: ../src/plugins/webreport/NarrativeWeb.py:1568 msgid "Notes" msgstr "Notes" @@ -6519,9 +6519,9 @@ msgstr "Notes" #: ../src/plugins/view/relview.py:848 #: ../src/plugins/view/relview.py:882 #: ../src/plugins/webreport/NarrativeWeb.py:380 -#: ../src/plugins/webreport/NarrativeWeb.py:2912 -#: ../src/plugins/webreport/NarrativeWeb.py:5234 -#: ../src/plugins/webreport/NarrativeWeb.py:6407 +#: ../src/plugins/webreport/NarrativeWeb.py:2918 +#: ../src/plugins/webreport/NarrativeWeb.py:5240 +#: ../src/plugins/webreport/NarrativeWeb.py:6413 msgid "Parents" msgstr "Parents " @@ -6537,7 +6537,7 @@ msgstr "Sélectionner les parents" #: ../src/plugins/gramplet/gramplet.gpr.py:133 #: ../src/plugins/gramplet/gramplet.gpr.py:139 #: ../src/plugins/view/pedigreeview.py:685 -#: ../src/plugins/webreport/NarrativeWeb.py:6091 +#: ../src/plugins/webreport/NarrativeWeb.py:6097 msgid "Pedigree" msgstr "Arbre généalogique" @@ -6546,11 +6546,11 @@ msgstr "Arbre généalogique" #: ../src/plugins/view/geography.gpr.py:73 #: ../src/plugins/view/placetreeview.gpr.py:34 #: ../src/plugins/view/view.gpr.py:180 -#: ../src/plugins/webreport/NarrativeWeb.py:1760 -#: ../src/plugins/webreport/NarrativeWeb.py:1815 -#: ../src/plugins/webreport/NarrativeWeb.py:1871 -#: ../src/plugins/webreport/NarrativeWeb.py:3339 -#: ../src/plugins/webreport/NarrativeWeb.py:3459 +#: ../src/plugins/webreport/NarrativeWeb.py:1766 +#: ../src/plugins/webreport/NarrativeWeb.py:1821 +#: ../src/plugins/webreport/NarrativeWeb.py:1877 +#: ../src/plugins/webreport/NarrativeWeb.py:3345 +#: ../src/plugins/webreport/NarrativeWeb.py:3465 msgid "Places" msgstr "Lieux" @@ -6562,11 +6562,11 @@ msgstr "Rapports" #: ../src/plugins/quickview/FilterByName.py:106 #: ../src/plugins/view/repoview.py:123 #: ../src/plugins/view/view.gpr.py:196 -#: ../src/plugins/webreport/NarrativeWeb.py:1762 -#: ../src/plugins/webreport/NarrativeWeb.py:1873 -#: ../src/plugins/webreport/NarrativeWeb.py:2721 -#: ../src/plugins/webreport/NarrativeWeb.py:6575 -#: ../src/plugins/webreport/NarrativeWeb.py:6640 +#: ../src/plugins/webreport/NarrativeWeb.py:1768 +#: ../src/plugins/webreport/NarrativeWeb.py:1879 +#: ../src/plugins/webreport/NarrativeWeb.py:2727 +#: ../src/plugins/webreport/NarrativeWeb.py:6581 +#: ../src/plugins/webreport/NarrativeWeb.py:6646 msgid "Repositories" msgstr "Dépôts" @@ -6576,14 +6576,14 @@ msgstr "Dépôts" #: ../src/plugins/view/view.gpr.py:211 #: ../src/plugins/view/view.gpr.py:242 #: ../src/plugins/webreport/NarrativeWeb.py:387 -#: ../src/plugins/webreport/NarrativeWeb.py:981 -#: ../src/plugins/webreport/NarrativeWeb.py:1258 -#: ../src/plugins/webreport/NarrativeWeb.py:1563 -#: ../src/plugins/webreport/NarrativeWeb.py:1761 -#: ../src/plugins/webreport/NarrativeWeb.py:1812 -#: ../src/plugins/webreport/NarrativeWeb.py:1872 -#: ../src/plugins/webreport/NarrativeWeb.py:4178 -#: ../src/plugins/webreport/NarrativeWeb.py:4261 +#: ../src/plugins/webreport/NarrativeWeb.py:987 +#: ../src/plugins/webreport/NarrativeWeb.py:1264 +#: ../src/plugins/webreport/NarrativeWeb.py:1569 +#: ../src/plugins/webreport/NarrativeWeb.py:1767 +#: ../src/plugins/webreport/NarrativeWeb.py:1818 +#: ../src/plugins/webreport/NarrativeWeb.py:1878 +#: ../src/plugins/webreport/NarrativeWeb.py:4184 +#: ../src/plugins/webreport/NarrativeWeb.py:4267 msgid "Sources" msgstr "Sources" @@ -6940,12 +6940,12 @@ msgid "F_ull Screen" msgstr "_Plein Écran" #: ../src/gui/viewmanager.py:612 -#: ../src/gui/viewmanager.py:1194 +#: ../src/gui/viewmanager.py:1197 msgid "_Undo" msgstr "_Défaire" #: ../src/gui/viewmanager.py:617 -#: ../src/gui/viewmanager.py:1211 +#: ../src/gui/viewmanager.py:1214 msgid "_Redo" msgstr "_Rétablir" @@ -7004,102 +7004,102 @@ msgstr "Impossible d'abandonner les changements de la session" msgid "Changes cannot be completely abandoned because the number of changes made in the session exceeded the limit." msgstr "Les changements ne peuvent être complètement abandonner car le nombre de modifications effectuées pendant la session excèdent la limite." -#: ../src/gui/viewmanager.py:973 +#: ../src/gui/viewmanager.py:976 msgid "View failed to load. Check error output." msgstr "Échec au chargement de la vue. Regardez la sortie d'erreur." -#: ../src/gui/viewmanager.py:1112 +#: ../src/gui/viewmanager.py:1115 msgid "Import Statistics" msgstr "Statistiques d'importation" -#: ../src/gui/viewmanager.py:1163 +#: ../src/gui/viewmanager.py:1166 msgid "Read Only" msgstr "Lecture seule" -#: ../src/gui/viewmanager.py:1246 +#: ../src/gui/viewmanager.py:1249 msgid "Gramps XML Backup" msgstr "Sauvegarde Gramps XML" -#: ../src/gui/viewmanager.py:1256 +#: ../src/gui/viewmanager.py:1259 #: ../src/Filters/Rules/MediaObject/_HasMedia.py:49 #: ../src/glade/mergemedia.glade.h:6 msgid "Path:" msgstr "Chemin :" -#: ../src/gui/viewmanager.py:1276 +#: ../src/gui/viewmanager.py:1279 #: ../src/plugins/tool/phpgedview.glade.h:5 #: ../src/plugins/import/importgedcom.glade.h:7 msgid "File:" msgstr "Fichier :" -#: ../src/gui/viewmanager.py:1308 +#: ../src/gui/viewmanager.py:1311 msgid "Media:" msgstr "Media :" #. ################# #. What to include #. ######################### -#: ../src/gui/viewmanager.py:1313 +#: ../src/gui/viewmanager.py:1316 #: ../src/plugins/drawreport/AncestorTree.py:989 #: ../src/plugins/drawreport/DescendTree.py:1585 #: ../src/plugins/textreport/DetAncestralReport.py:803 #: ../src/plugins/textreport/DetDescendantReport.py:979 #: ../src/plugins/textreport/DetDescendantReport.py:980 #: ../src/plugins/textreport/FamilyGroup.py:657 -#: ../src/plugins/webreport/NarrativeWeb.py:8201 +#: ../src/plugins/webreport/NarrativeWeb.py:8207 msgid "Include" msgstr "Inclure" -#: ../src/gui/viewmanager.py:1314 +#: ../src/gui/viewmanager.py:1317 #: ../src/plugins/gramplet/StatsGramplet.py:200 msgid "Megabyte|MB" msgstr "Mo" -#: ../src/gui/viewmanager.py:1315 -#: ../src/plugins/webreport/NarrativeWeb.py:8195 +#: ../src/gui/viewmanager.py:1318 +#: ../src/plugins/webreport/NarrativeWeb.py:8201 msgid "Exclude" msgstr "Exclure" -#: ../src/gui/viewmanager.py:1332 +#: ../src/gui/viewmanager.py:1335 msgid "Backup file already exists! Overwrite?" msgstr "Le fichier de sauvegarde existe déjà ! L'écraser ?" -#: ../src/gui/viewmanager.py:1333 +#: ../src/gui/viewmanager.py:1336 #, python-format msgid "The file '%s' exists." msgstr "Le fichier '%s' existe." -#: ../src/gui/viewmanager.py:1334 +#: ../src/gui/viewmanager.py:1337 msgid "Proceed and overwrite" msgstr "Procéder et écraser" -#: ../src/gui/viewmanager.py:1335 +#: ../src/gui/viewmanager.py:1338 msgid "Cancel the backup" msgstr "Annuler la sauvegarde" -#: ../src/gui/viewmanager.py:1342 +#: ../src/gui/viewmanager.py:1345 msgid "Making backup..." msgstr "Création de la sauvegarde..." -#: ../src/gui/viewmanager.py:1359 +#: ../src/gui/viewmanager.py:1362 #, python-format msgid "Backup saved to '%s'" msgstr "Sauvegarde sous '%s'" -#: ../src/gui/viewmanager.py:1362 +#: ../src/gui/viewmanager.py:1365 msgid "Backup aborted" msgstr "Sauvegarde échouée" -#: ../src/gui/viewmanager.py:1380 +#: ../src/gui/viewmanager.py:1383 msgid "Select backup directory" msgstr "Sélection du répertoire de sauvegarde" # Substantif (GNOME fr) -#: ../src/gui/viewmanager.py:1646 +#: ../src/gui/viewmanager.py:1649 msgid "Failed Loading Plugin" msgstr "Échec du chargement du greffon" -#: ../src/gui/viewmanager.py:1647 +#: ../src/gui/viewmanager.py:1650 #, python-format msgid "" "The plugin %(name)s did not load and reported an error.\n" @@ -7118,11 +7118,11 @@ msgstr "" "\n" "Si vous ne souhaitez plus que Gramps essaye de charger ce greffon, alors vous pouvez le cacher en utilisant le gestionnaire de greffons dans le menu Aide." -#: ../src/gui/viewmanager.py:1695 +#: ../src/gui/viewmanager.py:1698 msgid "Failed Loading View" msgstr "Échec du chargement de la vue" -#: ../src/gui/viewmanager.py:1696 +#: ../src/gui/viewmanager.py:1699 #, python-format msgid "" "The view %(name)s did not load and reported an error.\n" @@ -7235,7 +7235,7 @@ msgid "To select a media object, use drag-and-drop or use the buttons" msgstr "Pour sélectionner un objet medium, faites un glisser-déposer ou utilisez les boutons" #: ../src/gui/editors/objectentries.py:361 -#: ../src/gui/plug/_guioptions.py:1051 +#: ../src/gui/plug/_guioptions.py:1062 msgid "No image given, click button to select one" msgstr "Aucune image choisie, cliquez sur le bouton pour en sélectionner une" @@ -7244,7 +7244,7 @@ msgid "Edit media object" msgstr "Éditer l'objet medium" #: ../src/gui/editors/objectentries.py:363 -#: ../src/gui/plug/_guioptions.py:1029 +#: ../src/gui/plug/_guioptions.py:1040 msgid "Select an existing media object" msgstr "Sélectionner un objet medium existant" @@ -7263,7 +7263,7 @@ msgid "To select a note, use drag-and-drop or use the buttons" msgstr "Pour sélectionner une note, faites un glisser-déposer ou utilisez les boutons" #: ../src/gui/editors/objectentries.py:412 -#: ../src/gui/plug/_guioptions.py:950 +#: ../src/gui/plug/_guioptions.py:961 msgid "No note given, click button to select one" msgstr "Aucune note choisie, cliquez sur le bouton pour en sélectionner une" @@ -7274,7 +7274,7 @@ msgid "Edit Note" msgstr "Éditer la note" #: ../src/gui/editors/objectentries.py:414 -#: ../src/gui/plug/_guioptions.py:925 +#: ../src/gui/plug/_guioptions.py:936 msgid "Select an existing note" msgstr "Sélectionner une note existante" @@ -7491,7 +7491,7 @@ msgstr "N°" #: ../src/plugins/lib/libpersonview.py:94 #: ../src/plugins/quickview/siblings.py:48 #: ../src/plugins/textreport/IndivComplete.py:538 -#: ../src/plugins/webreport/NarrativeWeb.py:6215 +#: ../src/plugins/webreport/NarrativeWeb.py:6221 #: ../src/Filters/SideBar/_PersonSidebarFilter.py:128 msgid "Gender" msgstr "Genre" @@ -7726,7 +7726,7 @@ msgstr "%(mother)s [%(gramps_id)s]" #: ../src/gui/editors/editldsord.py:303 #: ../src/gui/editors/editldsord.py:425 -#: ../src/plugins/webreport/NarrativeWeb.py:789 +#: ../src/plugins/webreport/NarrativeWeb.py:795 msgid "LDS Ordinance" msgstr "Ordonnance Saints des Derniers Jours" @@ -8347,13 +8347,13 @@ msgstr "Déplacer la citation vers le bas" #: ../src/gui/selectors/selectsource.py:62 #: ../src/plugins/gramplet/Citations.py:68 #: ../src/plugins/view/sourceview.py:81 -#: ../src/plugins/webreport/NarrativeWeb.py:4290 +#: ../src/plugins/webreport/NarrativeWeb.py:4296 #: ../src/Filters/SideBar/_SourceSidebarFilter.py:81 msgid "Author" msgstr "Auteur" #: ../src/gui/editors/displaytabs/citationembedlist.py:84 -#: ../src/plugins/webreport/NarrativeWeb.py:2368 +#: ../src/plugins/webreport/NarrativeWeb.py:2374 msgid "Page" msgstr "Page" @@ -8408,7 +8408,7 @@ msgstr "Déplacer la donnée sélectionnée vers le bas" #: ../src/gui/editors/displaytabs/dataembedlist.py:59 #: ../src/plugins/gramplet/Attributes.py:46 #: ../src/plugins/lib/libmetadata.py:160 -#: ../src/plugins/webreport/NarrativeWeb.py:1311 +#: ../src/plugins/webreport/NarrativeWeb.py:1317 msgid "Key" msgstr "Clé" @@ -8494,7 +8494,7 @@ msgstr "%(groupname)s - %(groupnumber)d" #: ../src/gui/editors/displaytabs/familyldsembedlist.py:54 #: ../src/gui/editors/displaytabs/ldsembedlist.py:65 #: ../src/plugins/webreport/NarrativeWeb.py:392 -#: ../src/plugins/webreport/NarrativeWeb.py:1255 +#: ../src/plugins/webreport/NarrativeWeb.py:1261 msgid "Temple" msgstr "Temple" @@ -8571,7 +8571,7 @@ msgstr "Départ./Comté" #: ../src/plugins/lib/maps/geography.py:186 #: ../src/plugins/tool/ExtractCity.py:387 #: ../src/plugins/view/placetreeview.py:76 -#: ../src/plugins/webreport/NarrativeWeb.py:3373 +#: ../src/plugins/webreport/NarrativeWeb.py:3379 #: ../src/Filters/SideBar/_PlaceSidebarFilter.py:92 msgid "State" msgstr "Région/Province" @@ -8625,7 +8625,7 @@ msgstr "Définir comme nom par défaut" #. #. ------------------------------------------------------------------------- #: ../src/gui/editors/displaytabs/namemodel.py:53 -#: ../src/gui/plug/_guioptions.py:1193 +#: ../src/gui/plug/_guioptions.py:1204 #: ../src/gui/views/listview.py:502 #: ../src/gui/views/tags.py:478 #: ../src/plugins/quickview/all_relations.py:307 @@ -8633,7 +8633,7 @@ msgid "Yes" msgstr "Oui" #: ../src/gui/editors/displaytabs/namemodel.py:54 -#: ../src/gui/plug/_guioptions.py:1192 +#: ../src/gui/plug/_guioptions.py:1203 #: ../src/gui/views/listview.py:501 #: ../src/gui/views/tags.py:479 #: ../src/plugins/quickview/all_relations.py:311 @@ -8688,7 +8688,7 @@ msgstr "_Notes" # trunk #. add personal column #: ../src/gui/editors/displaytabs/personeventembedlist.py:50 -#: ../src/plugins/webreport/NarrativeWeb.py:1908 +#: ../src/plugins/webreport/NarrativeWeb.py:1914 msgid "Personal" msgstr "Individu" @@ -8934,54 +8934,54 @@ msgstr "Recherche des noms de famille" msgid "Finding surnames" msgstr "Recherche des noms de famille" -#: ../src/gui/plug/_guioptions.py:631 +#: ../src/gui/plug/_guioptions.py:642 msgid "Select a different person" msgstr "Sélectionner un individu différent" -#: ../src/gui/plug/_guioptions.py:658 +#: ../src/gui/plug/_guioptions.py:669 msgid "Select a person for the report" msgstr "Sélectionner l'individu pour le rapport" -#: ../src/gui/plug/_guioptions.py:739 +#: ../src/gui/plug/_guioptions.py:750 msgid "Select a different family" msgstr "Sélectionner une famille différente" -#: ../src/gui/plug/_guioptions.py:837 +#: ../src/gui/plug/_guioptions.py:848 #: ../src/plugins/BookReport.py:188 msgid "unknown father" msgstr "père inconnu" -#: ../src/gui/plug/_guioptions.py:843 +#: ../src/gui/plug/_guioptions.py:854 #: ../src/plugins/BookReport.py:194 msgid "unknown mother" msgstr "mère inconnue" -#: ../src/gui/plug/_guioptions.py:845 +#: ../src/gui/plug/_guioptions.py:856 #: ../src/plugins/textreport/PlaceReport.py:225 #, python-format msgid "%s and %s (%s)" msgstr "%s et %s (%s)" -#: ../src/gui/plug/_guioptions.py:1188 +#: ../src/gui/plug/_guioptions.py:1199 #, python-format msgid "Also include %s?" msgstr "Inclure également %s ?" -#: ../src/gui/plug/_guioptions.py:1190 +#: ../src/gui/plug/_guioptions.py:1201 #: ../src/gui/selectors/selectperson.py:67 msgid "Select Person" msgstr "Sélectionner l'individu" -#: ../src/gui/plug/_guioptions.py:1438 +#: ../src/gui/plug/_guioptions.py:1449 msgid "Colour" msgstr "Couleur" -#: ../src/gui/plug/_guioptions.py:1666 +#: ../src/gui/plug/_guioptions.py:1677 #: ../src/gui/plug/report/_reportdialog.py:461 msgid "Save As" msgstr "Enregistrer sous" -#: ../src/gui/plug/_guioptions.py:1746 +#: ../src/gui/plug/_guioptions.py:1757 #: ../src/gui/plug/report/_reportdialog.py:318 #: ../src/gui/plug/report/_styleeditor.py:102 msgid "Style Editor" @@ -9259,7 +9259,7 @@ msgstr "Style " #: ../src/plugins/textreport/PlaceReport.py:368 #: ../src/plugins/textreport/SimpleBookTitle.py:129 #: ../src/plugins/textreport/TagReport.py:527 -#: ../src/plugins/webreport/NarrativeWeb.py:7994 +#: ../src/plugins/webreport/NarrativeWeb.py:8000 #: ../src/plugins/webreport/WebCal.py:1307 msgid "Report Options" msgstr "Options du rapport" @@ -10161,7 +10161,7 @@ msgstr "Aucun conjoint ni d'enfant trouvé" #: ../src/Merge/mergeperson.py:250 #: ../src/plugins/textreport/IndivComplete.py:318 -#: ../src/plugins/webreport/NarrativeWeb.py:1367 +#: ../src/plugins/webreport/NarrativeWeb.py:1373 msgid "Addresses" msgstr "Adresses" @@ -10565,7 +10565,7 @@ msgstr "Détermine quels individus seront inclus dans le rapport." #: ../src/plugins/drawreport/TimeLine.py:375 #: ../src/plugins/textreport/IndivComplete.py:615 #: ../src/plugins/tool/SortEvents.py:173 -#: ../src/plugins/webreport/NarrativeWeb.py:8025 +#: ../src/plugins/webreport/NarrativeWeb.py:8031 #: ../src/plugins/webreport/WebCal.py:1328 msgid "Filter Person" msgstr "Filtre sur l'individu" @@ -10573,7 +10573,7 @@ msgstr "Filtre sur l'individu" #: ../src/plugins/Records.py:526 #: ../src/plugins/drawreport/TimeLine.py:376 #: ../src/plugins/tool/SortEvents.py:174 -#: ../src/plugins/webreport/NarrativeWeb.py:8026 +#: ../src/plugins/webreport/NarrativeWeb.py:8032 #: ../src/plugins/webreport/WebCal.py:1329 msgid "The center person for the filter" msgstr "L'individu central pour ce filtre" @@ -10794,13 +10794,13 @@ msgid "of %d" msgstr "sur %d" #: ../src/plugins/docgen/HtmlDoc.py:271 -#: ../src/plugins/webreport/NarrativeWeb.py:7947 +#: ../src/plugins/webreport/NarrativeWeb.py:7953 #: ../src/plugins/webreport/WebCal.py:246 msgid "Possible destination error" msgstr "Possible erreur de destination" #: ../src/plugins/docgen/HtmlDoc.py:272 -#: ../src/plugins/webreport/NarrativeWeb.py:7948 +#: ../src/plugins/webreport/NarrativeWeb.py:7954 #: ../src/plugins/webreport/WebCal.py:247 msgid "You appear to have set your target directory to a directory used for data storage. This could create problems with file management. It is recommended that you consider using a different directory to store your generated web pages." msgstr "Il semble que le répertoire cible est le répertoire de stockage des données. Cela peut générer des problèmes dans la gestion de fichier. Il est recommandé d'utiliser un répertoire différent pour stocker les pages internet générées." @@ -11327,7 +11327,7 @@ msgstr "L'individu central pour ce rapport" #: ../src/plugins/textreport/IndivComplete.py:627 #: ../src/plugins/textreport/KinshipReport.py:351 #: ../src/plugins/textreport/NumberOfAncestorsReport.py:205 -#: ../src/plugins/webreport/NarrativeWeb.py:8045 +#: ../src/plugins/webreport/NarrativeWeb.py:8051 #: ../src/plugins/webreport/WebCal.py:1348 msgid "Select the format to display names" msgstr "Sélection du format d'affichage pour le nom" @@ -12384,14 +12384,14 @@ msgstr "Source de l'inhumation" #: ../src/plugins/export/ExportCsv.py:478 #: ../src/plugins/import/ImportCsv.py:225 #: ../src/plugins/textreport/FamilyGroup.py:571 -#: ../src/plugins/webreport/NarrativeWeb.py:2460 +#: ../src/plugins/webreport/NarrativeWeb.py:2466 msgid "Husband" msgstr "Mari" #: ../src/plugins/export/ExportCsv.py:478 #: ../src/plugins/import/ImportCsv.py:222 #: ../src/plugins/textreport/FamilyGroup.py:580 -#: ../src/plugins/webreport/NarrativeWeb.py:2458 +#: ../src/plugins/webreport/NarrativeWeb.py:2464 msgid "Wife" msgstr "Femme" @@ -12401,26 +12401,26 @@ msgid "Writing individuals" msgstr "Écriture des individus" # Substantif (GNOME fr) -#: ../src/plugins/export/ExportGedcom.py:741 +#: ../src/plugins/export/ExportGedcom.py:747 msgid "Writing families" msgstr "Écriture des familles" # Substantif (GNOME fr) -#: ../src/plugins/export/ExportGedcom.py:901 +#: ../src/plugins/export/ExportGedcom.py:907 msgid "Writing sources" msgstr "Écriture des sources" # Substantif (GNOME fr) -#: ../src/plugins/export/ExportGedcom.py:936 +#: ../src/plugins/export/ExportGedcom.py:942 msgid "Writing notes" msgstr "Écriture des notes" # Substantif (GNOME fr) -#: ../src/plugins/export/ExportGedcom.py:974 +#: ../src/plugins/export/ExportGedcom.py:980 msgid "Writing repositories" msgstr "Écriture des dépôts" -#: ../src/plugins/export/ExportGedcom.py:1448 +#: ../src/plugins/export/ExportGedcom.py:1460 msgid "Export failed" msgstr "L'exportation a échoué" @@ -12721,8 +12721,8 @@ msgstr "Gramplet affichant les attributs d'un individu" #: ../src/plugins/gramplet/bottombar.gpr.py:273 #: ../src/plugins/gramplet/bottombar.gpr.py:287 #: ../src/plugins/webreport/NarrativeWeb.py:366 -#: ../src/plugins/webreport/NarrativeWeb.py:799 -#: ../src/plugins/webreport/NarrativeWeb.py:1545 +#: ../src/plugins/webreport/NarrativeWeb.py:805 +#: ../src/plugins/webreport/NarrativeWeb.py:1551 msgid "Attributes" msgstr "Attributs" @@ -12872,7 +12872,7 @@ msgstr "Gramplet affichant les enfants d'un individu" #: ../src/plugins/view/fanchartview.py:873 #: ../src/plugins/view/pedigreeview.py:1919 #: ../src/plugins/view/relview.py:1358 -#: ../src/plugins/webreport/NarrativeWeb.py:756 +#: ../src/plugins/webreport/NarrativeWeb.py:762 msgid "Children" msgstr "Enfants " @@ -12901,10 +12901,10 @@ msgstr "Gramplet affichant les références de l'individu." #: ../src/plugins/gramplet/bottombar.gpr.py:595 #: ../src/plugins/gramplet/bottombar.gpr.py:609 #: ../src/plugins/gramplet/bottombar.gpr.py:623 -#: ../src/plugins/webreport/NarrativeWeb.py:2415 -#: ../src/plugins/webreport/NarrativeWeb.py:2827 -#: ../src/plugins/webreport/NarrativeWeb.py:4889 -#: ../src/plugins/webreport/NarrativeWeb.py:5759 +#: ../src/plugins/webreport/NarrativeWeb.py:2421 +#: ../src/plugins/webreport/NarrativeWeb.py:2833 +#: ../src/plugins/webreport/NarrativeWeb.py:4895 +#: ../src/plugins/webreport/NarrativeWeb.py:5765 msgid "References" msgstr "Références" @@ -13820,7 +13820,7 @@ msgstr "%(date)s." #: ../src/plugins/lib/libplaceview.py:102 #: ../src/plugins/view/placetreeview.py:80 #: ../src/plugins/webreport/NarrativeWeb.py:376 -#: ../src/plugins/webreport/NarrativeWeb.py:3375 +#: ../src/plugins/webreport/NarrativeWeb.py:3381 msgid "Latitude" msgstr "Latitude" @@ -13828,7 +13828,7 @@ msgstr "Latitude" #: ../src/plugins/lib/libplaceview.py:103 #: ../src/plugins/view/placetreeview.py:81 #: ../src/plugins/webreport/NarrativeWeb.py:378 -#: ../src/plugins/webreport/NarrativeWeb.py:3376 +#: ../src/plugins/webreport/NarrativeWeb.py:3382 msgid "Longitude" msgstr "Longitude" @@ -13934,10 +13934,10 @@ msgstr "moins de 1" #: ../src/plugins/gramplet/StatsGramplet.py:145 #: ../src/plugins/graph/GVFamilyLines.py:149 #: ../src/plugins/textreport/Summary.py:103 -#: ../src/plugins/webreport/NarrativeWeb.py:1756 -#: ../src/plugins/webreport/NarrativeWeb.py:1806 -#: ../src/plugins/webreport/NarrativeWeb.py:1862 -#: ../src/plugins/webreport/NarrativeWeb.py:5193 +#: ../src/plugins/webreport/NarrativeWeb.py:1762 +#: ../src/plugins/webreport/NarrativeWeb.py:1812 +#: ../src/plugins/webreport/NarrativeWeb.py:1868 +#: ../src/plugins/webreport/NarrativeWeb.py:5199 msgid "Individuals" msgstr "Individus" @@ -14399,12 +14399,12 @@ msgstr "La couleur utilisée quand le genre est inconnu." #: ../src/plugins/textreport/TagReport.py:194 #: ../src/plugins/view/familyview.py:114 #: ../src/plugins/view/view.gpr.py:56 -#: ../src/plugins/webreport/NarrativeWeb.py:663 -#: ../src/plugins/webreport/NarrativeWeb.py:707 -#: ../src/plugins/webreport/NarrativeWeb.py:1758 -#: ../src/plugins/webreport/NarrativeWeb.py:1809 -#: ../src/plugins/webreport/NarrativeWeb.py:1864 -#: ../src/plugins/webreport/NarrativeWeb.py:3060 +#: ../src/plugins/webreport/NarrativeWeb.py:669 +#: ../src/plugins/webreport/NarrativeWeb.py:713 +#: ../src/plugins/webreport/NarrativeWeb.py:1764 +#: ../src/plugins/webreport/NarrativeWeb.py:1815 +#: ../src/plugins/webreport/NarrativeWeb.py:1870 +#: ../src/plugins/webreport/NarrativeWeb.py:3066 msgid "Families" msgstr "Familles" @@ -14858,10 +14858,10 @@ msgstr "date de décès" #: ../src/plugins/quickview/FilterByName.py:239 #: ../src/plugins/quickview/FilterByName.py:245 #: ../src/plugins/quickview/FilterByName.py:251 -#: ../src/plugins/webreport/NarrativeWeb.py:3662 -#: ../src/plugins/webreport/NarrativeWeb.py:3839 -#: ../src/plugins/webreport/NarrativeWeb.py:4289 -#: ../src/plugins/webreport/NarrativeWeb.py:6658 +#: ../src/plugins/webreport/NarrativeWeb.py:3668 +#: ../src/plugins/webreport/NarrativeWeb.py:3845 +#: ../src/plugins/webreport/NarrativeWeb.py:4295 +#: ../src/plugins/webreport/NarrativeWeb.py:6664 msgid "Gramps ID" msgstr "id Gramps" @@ -15415,68 +15415,68 @@ msgstr "" "Échec entre l'extension sélectionnée %(ext)s et le format actuel.\n" " Écriture de %(filename)s au format %(impliedext)s." -#: ../src/plugins/lib/libgedcom.py:1745 +#: ../src/plugins/lib/libgedcom.py:1749 msgid "Your GEDCOM file is corrupted. It appears to have been truncated." msgstr "Votre fichier GEDCOM est corrompu. Il semble avoir été tronqué." -#: ../src/plugins/lib/libgedcom.py:1828 +#: ../src/plugins/lib/libgedcom.py:1832 #, python-format msgid "Import from GEDCOM (%s)" msgstr "Importé du GEDCOM (%s)" -#: ../src/plugins/lib/libgedcom.py:2613 -#: ../src/plugins/lib/libgedcom.py:3001 +#: ../src/plugins/lib/libgedcom.py:2617 +#: ../src/plugins/lib/libgedcom.py:3005 msgid "GEDCOM import" msgstr "Importation GEDCOM" # trunk -#: ../src/plugins/lib/libgedcom.py:2636 +#: ../src/plugins/lib/libgedcom.py:2640 msgid "GEDCOM import report: No errors detected" msgstr "Rapport d'importation GEDCOM : aucune erreur détectée" # trunk -#: ../src/plugins/lib/libgedcom.py:2638 +#: ../src/plugins/lib/libgedcom.py:2642 #, python-format msgid "GEDCOM import report: %s errors detected" msgstr "Rapport d'importation GEDCOM : %s erreurs détectées" # trunk # limite à 32 caractères ! -#: ../src/plugins/lib/libgedcom.py:2922 +#: ../src/plugins/lib/libgedcom.py:2926 msgid "Tag recognised but not supported" msgstr "Reconnu mais non-supporté (TAG)" # trunk -#: ../src/plugins/lib/libgedcom.py:2933 +#: ../src/plugins/lib/libgedcom.py:2937 msgid "Line ignored as not understood" msgstr "Ligne ignorée car non-comprise" # trunk -#: ../src/plugins/lib/libgedcom.py:2958 +#: ../src/plugins/lib/libgedcom.py:2962 msgid "Skipped subordinate line" msgstr "Ligne suivante ignorée" # trunk -#: ../src/plugins/lib/libgedcom.py:2992 +#: ../src/plugins/lib/libgedcom.py:2996 msgid "Records not imported into " msgstr "Enregistrements non-importés dans " -#: ../src/plugins/lib/libgedcom.py:3027 +#: ../src/plugins/lib/libgedcom.py:3031 #, python-format msgid "Error: %(msg)s '%(gramps_id)s' (input as @%(xref)s@) not in input GEDCOM. Record synthesised" msgstr "Erreur : %(msg)s '%(gramps_id)s' (saisi comme @%(xref)s@) absent du fichier Gedcom. Enregistrement synthétisé" -#: ../src/plugins/lib/libgedcom.py:3036 +#: ../src/plugins/lib/libgedcom.py:3040 #, python-format msgid "Error: %(msg)s '%(gramps_id)s' (input as @%(xref)s@) not in input GEDCOM. Record with typifying attribute 'Unknown' created" msgstr "Erreur : %(msg)s '%(gramps_id)s' (saisi comme @%(xref)s@) absent du fichier Gedcom. Enregistrement avec le type d'attribut 'Inconnu' créé" -#: ../src/plugins/lib/libgedcom.py:3075 +#: ../src/plugins/lib/libgedcom.py:3079 #, python-format msgid "Error: family '%(family)s' (input as @%(orig_family)s@) person %(person)s (input as %(orig_person)s) is not a member of the referenced family. Family reference removed from person" msgstr "Erreur: famille '%(family)s' (saisie comme @%(orig_family)s@) individu %(person)s (saisi comme %(orig_person)s) n'est pas un membre d'une famille référencée. La référence de la famille a été enlevée pour cet individu" -#: ../src/plugins/lib/libgedcom.py:3153 +#: ../src/plugins/lib/libgedcom.py:3157 #, python-format msgid "" "\n" @@ -15496,92 +15496,98 @@ msgstr "" #. message means that the element %s was ignored, but #. expressed the wrong way round because the message is #. truncated for output -#: ../src/plugins/lib/libgedcom.py:3221 +#: ../src/plugins/lib/libgedcom.py:3225 #, python-format msgid "ADDR element ignored '%s'" msgstr "'%s' ignoré par ADDR" # trunk -#: ../src/plugins/lib/libgedcom.py:3234 +#: ../src/plugins/lib/libgedcom.py:3238 msgid "TRLR (trailer)" msgstr "TRLR (trailer-piste)" # trunk -#: ../src/plugins/lib/libgedcom.py:3263 +#: ../src/plugins/lib/libgedcom.py:3268 #, python-format msgid "SUBM (Submitter): @%s@" msgstr "SUBM (Soumetteur) : @%s@" # trunk -#: ../src/plugins/lib/libgedcom.py:3287 -#: ../src/plugins/lib/libgedcom.py:6863 +#: ../src/plugins/lib/libgedcom.py:3270 +#, python-format +msgid "SUBM (Submitter): %s" +msgstr "SUBM (Soumetteur) : %s" + +# trunk +#: ../src/plugins/lib/libgedcom.py:3294 +#: ../src/plugins/lib/libgedcom.py:6870 msgid "GEDCOM data" msgstr "Donnée GEDCOM" # trunk -#: ../src/plugins/lib/libgedcom.py:3333 +#: ../src/plugins/lib/libgedcom.py:3340 msgid "Unknown tag" msgstr "Balise inconnue" # trunk -#: ../src/plugins/lib/libgedcom.py:3335 -#: ../src/plugins/lib/libgedcom.py:3349 -#: ../src/plugins/lib/libgedcom.py:3353 -#: ../src/plugins/lib/libgedcom.py:3374 +#: ../src/plugins/lib/libgedcom.py:3342 +#: ../src/plugins/lib/libgedcom.py:3356 +#: ../src/plugins/lib/libgedcom.py:3360 +#: ../src/plugins/lib/libgedcom.py:3381 msgid "Top Level" msgstr "Niveau supérieur" # trunk -#: ../src/plugins/lib/libgedcom.py:3443 +#: ../src/plugins/lib/libgedcom.py:3450 #, python-format msgid "INDI (individual) Gramps ID %s" msgstr "INDI (individu) Gramps ID %s" -#: ../src/plugins/lib/libgedcom.py:3560 +#: ../src/plugins/lib/libgedcom.py:3567 msgid "Empty Alias ignored" msgstr "Alias vide ignoré" # trunk -#: ../src/plugins/lib/libgedcom.py:3640 -#: ../src/plugins/lib/libgedcom.py:4947 -#: ../src/plugins/lib/libgedcom.py:5175 -#: ../src/plugins/lib/libgedcom.py:5342 -#: ../src/plugins/lib/libgedcom.py:6017 -#: ../src/plugins/lib/libgedcom.py:6161 +#: ../src/plugins/lib/libgedcom.py:3647 +#: ../src/plugins/lib/libgedcom.py:4954 +#: ../src/plugins/lib/libgedcom.py:5182 +#: ../src/plugins/lib/libgedcom.py:5349 +#: ../src/plugins/lib/libgedcom.py:6024 +#: ../src/plugins/lib/libgedcom.py:6168 msgid "Filename omitted" msgstr "Nom de fichier ignoré" # trunk -#: ../src/plugins/lib/libgedcom.py:3642 -#: ../src/plugins/lib/libgedcom.py:4949 -#: ../src/plugins/lib/libgedcom.py:5177 -#: ../src/plugins/lib/libgedcom.py:5344 -#: ../src/plugins/lib/libgedcom.py:6019 -#: ../src/plugins/lib/libgedcom.py:6163 +#: ../src/plugins/lib/libgedcom.py:3649 +#: ../src/plugins/lib/libgedcom.py:4956 +#: ../src/plugins/lib/libgedcom.py:5184 +#: ../src/plugins/lib/libgedcom.py:5351 +#: ../src/plugins/lib/libgedcom.py:6026 +#: ../src/plugins/lib/libgedcom.py:6170 msgid "Form omitted" msgstr "Forme ignorée" # trunk -#: ../src/plugins/lib/libgedcom.py:4713 +#: ../src/plugins/lib/libgedcom.py:4720 #, python-format msgid "FAM (family) Gramps ID %s" msgstr "FAM (famille) Gramps ID %s" # trunk -#: ../src/plugins/lib/libgedcom.py:5091 -#: ../src/plugins/lib/libgedcom.py:7134 -#: ../src/plugins/lib/libgedcom.py:7171 +#: ../src/plugins/lib/libgedcom.py:5098 +#: ../src/plugins/lib/libgedcom.py:7141 +#: ../src/plugins/lib/libgedcom.py:7178 msgid "Empty note ignored" msgstr "Note vide ignorée" #. We have previously found a PLAC -#: ../src/plugins/lib/libgedcom.py:5250 +#: ../src/plugins/lib/libgedcom.py:5257 msgid "A second PLAC ignored" msgstr "Un deuxième lieu (PLAC) est ignoré" #. We have perviously found an ADDR, or have populated location #. from PLAC title -#: ../src/plugins/lib/libgedcom.py:5432 +#: ../src/plugins/lib/libgedcom.py:5439 msgid "Location already populated; ADDR ignored" msgstr "L'emplacement existe déjà; ADDR est ignoré" @@ -15589,234 +15595,234 @@ msgstr "L'emplacement existe déjà; ADDR est ignoré" # limite à 32 caractères ! #. empty: discard, with warning and skip subs #. Note: level+2 -#: ../src/plugins/lib/libgedcom.py:5536 +#: ../src/plugins/lib/libgedcom.py:5543 msgid "Empty event note ignored" msgstr "Note vide ignorée (événement)" # trunk -#: ../src/plugins/lib/libgedcom.py:5854 -#: ../src/plugins/lib/libgedcom.py:6656 +#: ../src/plugins/lib/libgedcom.py:5861 +#: ../src/plugins/lib/libgedcom.py:6663 msgid "Warn: ADDR overwritten" msgstr "Attention : ADDR réécrite" # trunk -#: ../src/plugins/lib/libgedcom.py:6031 -#: ../src/plugins/lib/libgedcom.py:6453 +#: ../src/plugins/lib/libgedcom.py:6038 +#: ../src/plugins/lib/libgedcom.py:6460 msgid "REFN ignored" msgstr "REFN ignoré" # trunk #. SOURce with the given gramps_id had no title -#: ../src/plugins/lib/libgedcom.py:6124 +#: ../src/plugins/lib/libgedcom.py:6131 #, python-format msgid "No title - ID %s" msgstr "Aucun titre - ID %s" # trunk -#: ../src/plugins/lib/libgedcom.py:6129 +#: ../src/plugins/lib/libgedcom.py:6136 #, python-format msgid "SOUR (source) Gramps ID %s" msgstr "SOUR (source) Gramps ID %s" # trunk -#: ../src/plugins/lib/libgedcom.py:6379 +#: ../src/plugins/lib/libgedcom.py:6386 #, python-format msgid "OBJE (multi-media object) Gramps ID %s" msgstr "OBJE (objet multimédia) Gramps ID %s" -#: ../src/plugins/lib/libgedcom.py:6407 -#: ../src/plugins/lib/libgedcom.py:7356 +#: ../src/plugins/lib/libgedcom.py:6414 +#: ../src/plugins/lib/libgedcom.py:7364 #, python-format msgid "Could not import %s" msgstr "Impossible d'importer %s" # trunk -#: ../src/plugins/lib/libgedcom.py:6443 +#: ../src/plugins/lib/libgedcom.py:6450 msgid "BLOB ignored" msgstr "BLOB ignoré" # trunk -#: ../src/plugins/lib/libgedcom.py:6463 +#: ../src/plugins/lib/libgedcom.py:6470 msgid "Multimedia REFN:TYPE ignored" msgstr "REFN multimedia : TYPE ignoré" # trunk -#: ../src/plugins/lib/libgedcom.py:6473 +#: ../src/plugins/lib/libgedcom.py:6480 msgid "Mutimedia RIN ignored" msgstr "RIN multimedia ignoré" # trunk -#: ../src/plugins/lib/libgedcom.py:6560 +#: ../src/plugins/lib/libgedcom.py:6567 #, python-format msgid "REPO (repository) Gramps ID %s" msgstr "REPO (dépôt) Gramps ID %s" # trunk -#: ../src/plugins/lib/libgedcom.py:6791 +#: ../src/plugins/lib/libgedcom.py:6798 msgid "Head (header)" msgstr "En-tête (header)" # trunk -#: ../src/plugins/lib/libgedcom.py:6807 +#: ../src/plugins/lib/libgedcom.py:6814 msgid "Approved system identification" msgstr "Système d'identification approuvé" # trunk #. feature request 2356: avoid genitive form -#: ../src/plugins/lib/libgedcom.py:6817 +#: ../src/plugins/lib/libgedcom.py:6824 msgid "Generated by" msgstr "Généré par" # trunk -#: ../src/plugins/lib/libgedcom.py:6831 +#: ../src/plugins/lib/libgedcom.py:6838 msgid "Name of software product" msgstr "Nom du logiciel source" # trunk -#: ../src/plugins/lib/libgedcom.py:6843 +#: ../src/plugins/lib/libgedcom.py:6850 msgid "Version number of software product" msgstr "Numéro de version du logiciel source" # trunk -#: ../src/plugins/lib/libgedcom.py:6860 +#: ../src/plugins/lib/libgedcom.py:6867 #, python-format msgid "Business that produced the product: %s" msgstr "Entreprise produisant : %s" # trunk -#: ../src/plugins/lib/libgedcom.py:6881 +#: ../src/plugins/lib/libgedcom.py:6888 msgid "Name of source data" msgstr "Nom de la source des données" # trunk -#: ../src/plugins/lib/libgedcom.py:6895 +#: ../src/plugins/lib/libgedcom.py:6902 msgid "Copyright of source data" msgstr "Droit à la copie des données" # trunk -#: ../src/plugins/lib/libgedcom.py:6909 +#: ../src/plugins/lib/libgedcom.py:6916 msgid "Publication date of source data" msgstr "Date de publication des données" # trunk #. feature request 2356: avoid genitive form -#: ../src/plugins/lib/libgedcom.py:6922 +#: ../src/plugins/lib/libgedcom.py:6929 #, python-format msgid "Import from %s" msgstr "Importé depuis %s" # trunk -#: ../src/plugins/lib/libgedcom.py:6960 +#: ../src/plugins/lib/libgedcom.py:6967 msgid "Submission record identifier" msgstr "Identifiant de soumission de l'enregistrement" # trunk -#: ../src/plugins/lib/libgedcom.py:6971 +#: ../src/plugins/lib/libgedcom.py:6978 msgid "Language of GEDCOM text" msgstr "Language du texte GEDCOM" -#: ../src/plugins/lib/libgedcom.py:6995 +#: ../src/plugins/lib/libgedcom.py:7002 #, python-format msgid "Import of GEDCOM file %s with DEST=%s, could cause errors in the resulting database!" msgstr "Importation du fichier GEDCOM %s avec DEST=%s, peut générer des erreurs dans la base de données !" # Substantif (GNOME fr) -#: ../src/plugins/lib/libgedcom.py:6998 +#: ../src/plugins/lib/libgedcom.py:7005 msgid "Look for nameless events." msgstr "Recherche des événements sans nom." # trunk -#: ../src/plugins/lib/libgedcom.py:7021 +#: ../src/plugins/lib/libgedcom.py:7028 msgid "Character set" msgstr "Encodage du caractère" # trunk -#: ../src/plugins/lib/libgedcom.py:7023 +#: ../src/plugins/lib/libgedcom.py:7030 msgid "Character set and version" msgstr "Encodage du caractère et la version" # trunk -#: ../src/plugins/lib/libgedcom.py:7039 +#: ../src/plugins/lib/libgedcom.py:7046 msgid "GEDCOM version not supported" msgstr "Version du GEDCOM non-supportée" # trunk -#: ../src/plugins/lib/libgedcom.py:7042 +#: ../src/plugins/lib/libgedcom.py:7049 msgid "GEDCOM version" msgstr "Version du GEDCOM" # trunk -#: ../src/plugins/lib/libgedcom.py:7045 +#: ../src/plugins/lib/libgedcom.py:7052 msgid "GEDCOM form not supported" msgstr "Forme de GEDCOM non-supportée" # trunk -#: ../src/plugins/lib/libgedcom.py:7047 +#: ../src/plugins/lib/libgedcom.py:7054 msgid "GEDCOM form" msgstr "Forme de GEDCOM" # trunk -#: ../src/plugins/lib/libgedcom.py:7093 +#: ../src/plugins/lib/libgedcom.py:7100 msgid "Creation date of GEDCOM" msgstr "Date de création du GEDCOM" # trunk -#: ../src/plugins/lib/libgedcom.py:7097 +#: ../src/plugins/lib/libgedcom.py:7104 msgid "Creation date and time of GEDCOM" msgstr "Date et heure de création du GEDCOM" # trunk -#: ../src/plugins/lib/libgedcom.py:7186 +#: ../src/plugins/lib/libgedcom.py:7193 #, python-format msgid "NOTE Gramps ID %s" msgstr "NOTE Gramps ID %s" # trunk -#: ../src/plugins/lib/libgedcom.py:7236 +#: ../src/plugins/lib/libgedcom.py:7243 msgid "Submission: Submitter" msgstr "Soumission : soumetteur" # trunk -#: ../src/plugins/lib/libgedcom.py:7238 +#: ../src/plugins/lib/libgedcom.py:7245 msgid "Submission: Family file" msgstr "Soumission : fichier de famille" # trunk -#: ../src/plugins/lib/libgedcom.py:7240 +#: ../src/plugins/lib/libgedcom.py:7247 msgid "Submission: Temple code" msgstr "Soumission : code du temple (LDS)" # trunk -#: ../src/plugins/lib/libgedcom.py:7242 +#: ../src/plugins/lib/libgedcom.py:7249 msgid "Submission: Generations of ancestors" msgstr "Soumission : générations d'ascendants" # trunk -#: ../src/plugins/lib/libgedcom.py:7244 +#: ../src/plugins/lib/libgedcom.py:7251 msgid "Submission: Generations of descendants" msgstr "Soumission : générations de descendants" # trunk -#: ../src/plugins/lib/libgedcom.py:7246 +#: ../src/plugins/lib/libgedcom.py:7253 msgid "Submission: Ordinance process flag" msgstr "Soumission : marque de l'ordinance (LDS)" # trunk #. # Okay we have no clue which temple this is. #. # We should tell the user and store it anyway. -#: ../src/plugins/lib/libgedcom.py:7457 +#: ../src/plugins/lib/libgedcom.py:7465 msgid "Invalid temple code" msgstr "Code de temple invalide" -#: ../src/plugins/lib/libgedcom.py:7549 +#: ../src/plugins/lib/libgedcom.py:7557 msgid "Your GEDCOM file is corrupted. The file appears to be encoded using the UTF16 character set, but is missing the BOM marker." msgstr "Votre fichier GEDCOM est corrompu. Ce fichier apparaît comme utilisant l'encodage de caractères UTF-16, mais il manque le marqueur BOM." -#: ../src/plugins/lib/libgedcom.py:7552 +#: ../src/plugins/lib/libgedcom.py:7560 msgid "Your GEDCOM file is empty." msgstr "Votre fichier GEDCOM est vide." -#: ../src/plugins/lib/libgedcom.py:7615 +#: ../src/plugins/lib/libgedcom.py:7623 #, python-format msgid "Invalid line %d in GEDCOM file." msgstr "Ligne %d invalide dans le fichier GEDCOM." @@ -19546,7 +19552,7 @@ msgid "Open on maps.google.com" msgstr "Ouvrir dans maps.google.com" #: ../src/plugins/mapservices/mapservice.gpr.py:69 -#: ../src/plugins/webreport/NarrativeWeb.py:8325 +#: ../src/plugins/webreport/NarrativeWeb.py:8331 msgid "OpenStreetMap" msgstr "OpenStreetMap" @@ -19595,7 +19601,7 @@ msgstr "Événements triés pour %s" #: ../src/plugins/quickview/all_events.py:60 #: ../src/plugins/quickview/all_events.py:105 #: ../src/plugins/quickview/all_events.py:117 -#: ../src/plugins/webreport/NarrativeWeb.py:5775 +#: ../src/plugins/webreport/NarrativeWeb.py:5781 msgid "Event Type" msgstr "Type d'événement" @@ -19678,10 +19684,10 @@ msgstr "Parent" #: ../src/plugins/quickview/all_relations.py:287 #: ../src/plugins/view/relview.py:395 #: ../src/plugins/webreport/NarrativeWeb.py:382 -#: ../src/plugins/webreport/NarrativeWeb.py:2462 -#: ../src/plugins/webreport/NarrativeWeb.py:2464 -#: ../src/plugins/webreport/NarrativeWeb.py:2909 -#: ../src/plugins/webreport/NarrativeWeb.py:5231 +#: ../src/plugins/webreport/NarrativeWeb.py:2468 +#: ../src/plugins/webreport/NarrativeWeb.py:2470 +#: ../src/plugins/webreport/NarrativeWeb.py:2915 +#: ../src/plugins/webreport/NarrativeWeb.py:5237 msgid "Partner" msgstr "Conjoint" @@ -20180,7 +20186,7 @@ msgid "Type of media" msgstr "Support" #: ../src/plugins/quickview/Reporef.py:62 -#: ../src/plugins/webreport/NarrativeWeb.py:2733 +#: ../src/plugins/webreport/NarrativeWeb.py:2739 msgid "Call number" msgstr "Numéro d'identifiant" @@ -21078,7 +21084,7 @@ msgid "The basic style used for generation headings." msgstr "Le style de base pour les intitulés de génération." #: ../src/plugins/textreport/FamilyGroup.py:124 -#: ../src/plugins/webreport/NarrativeWeb.py:1038 +#: ../src/plugins/webreport/NarrativeWeb.py:1044 #, python-format msgid "%(type)s: %(value)s" msgstr "%(type)s : %(value)s" @@ -22473,8 +22479,8 @@ msgid "Uncollected Objects Tool" msgstr "Outil de déboguage des objets" #: ../src/plugins/tool/Leak.py:89 -#: ../src/plugins/webreport/NarrativeWeb.py:2730 -#: ../src/plugins/webreport/NarrativeWeb.py:4208 +#: ../src/plugins/webreport/NarrativeWeb.py:2736 +#: ../src/plugins/webreport/NarrativeWeb.py:4214 msgid "Number" msgstr "Nombre" @@ -23350,7 +23356,7 @@ msgstr "Âge avancé mais pas de décès" #: ../src/plugins/view/citationtreeview.py:93 #: ../src/plugins/view/citationlistview.py:98 -#: ../src/plugins/webreport/NarrativeWeb.py:2369 +#: ../src/plugins/webreport/NarrativeWeb.py:2375 msgid "Confidence" msgstr "Niveau de confiance" @@ -23894,7 +23900,7 @@ msgstr "Un individu est défini comme son propre ascendant." #: ../src/plugins/view/pedigreeview.py:1727 #: ../src/plugins/view/pedigreeview.py:1733 -#: ../src/plugins/webreport/NarrativeWeb.py:4078 +#: ../src/plugins/webreport/NarrativeWeb.py:4084 #: ../src/plugins/webreport/WebCal.py:521 msgid "Home" msgstr "Souche" @@ -24226,7 +24232,7 @@ msgid "Exactly two repositories must be selected to perform a merge. A second re msgstr "Exactement deux dépôts doivent être sélectionnés pour accomplir une fusion. Le deuxième dépôt peut être sélectionné en maintenant la touche Contrôle (Ctrl) et en cliquant sur le dépôt désiré." #: ../src/plugins/view/sourceview.py:82 -#: ../src/plugins/webreport/NarrativeWeb.py:4291 +#: ../src/plugins/webreport/NarrativeWeb.py:4297 #: ../src/Filters/SideBar/_SourceSidebarFilter.py:82 msgid "Abbreviation" msgstr "Abréviation" @@ -24379,16 +24385,16 @@ msgstr "Noms alternatifs" msgid "" msgstr "" -#: ../src/plugins/webreport/NarrativeWeb.py:1302 +#: ../src/plugins/webreport/NarrativeWeb.py:1308 msgid "Data Map" msgstr "Carte des données" -#: ../src/plugins/webreport/NarrativeWeb.py:1603 +#: ../src/plugins/webreport/NarrativeWeb.py:1609 #, python-format msgid "Generated by Gramps %(version)s on %(date)s" msgstr "Généré par Gramps %(version)s le %(date)s" -#: ../src/plugins/webreport/NarrativeWeb.py:1617 +#: ../src/plugins/webreport/NarrativeWeb.py:1623 #, python-format msgid "
Created for %(name)s" msgstr "
Créé pour %(name)s" @@ -24397,349 +24403,349 @@ msgstr "
Créé pour %(name)s" #. is the style sheet either Basic-Blue or Visually Impaired, #. and menu layout is Drop Down? #. Basic Blue style sheet with navigation menus -#: ../src/plugins/webreport/NarrativeWeb.py:1722 +#: ../src/plugins/webreport/NarrativeWeb.py:1728 #: ../src/plugins/webstuff/webstuff.py:65 msgid "Basic-Blue" msgstr "Basique - Bleu" #. Visually Impaired style sheet with its navigation menus -#: ../src/plugins/webreport/NarrativeWeb.py:1723 +#: ../src/plugins/webreport/NarrativeWeb.py:1729 #: ../src/plugins/webstuff/webstuff.py:97 msgid "Visually Impaired" msgstr "Malvoyants" -#: ../src/plugins/webreport/NarrativeWeb.py:1754 -#: ../src/plugins/webreport/NarrativeWeb.py:1904 +#: ../src/plugins/webreport/NarrativeWeb.py:1760 +#: ../src/plugins/webreport/NarrativeWeb.py:1910 msgid "Html|Home" msgstr "Accueil" -#: ../src/plugins/webreport/NarrativeWeb.py:1755 -#: ../src/plugins/webreport/NarrativeWeb.py:1861 -#: ../src/plugins/webreport/NarrativeWeb.py:4045 +#: ../src/plugins/webreport/NarrativeWeb.py:1761 +#: ../src/plugins/webreport/NarrativeWeb.py:1867 +#: ../src/plugins/webreport/NarrativeWeb.py:4051 msgid "Introduction" msgstr "Introduction" -#: ../src/plugins/webreport/NarrativeWeb.py:1757 -#: ../src/plugins/webreport/NarrativeWeb.py:1801 -#: ../src/plugins/webreport/NarrativeWeb.py:1804 -#: ../src/plugins/webreport/NarrativeWeb.py:1863 -#: ../src/plugins/webreport/NarrativeWeb.py:3912 -#: ../src/plugins/webreport/NarrativeWeb.py:3957 +#: ../src/plugins/webreport/NarrativeWeb.py:1763 +#: ../src/plugins/webreport/NarrativeWeb.py:1807 +#: ../src/plugins/webreport/NarrativeWeb.py:1810 +#: ../src/plugins/webreport/NarrativeWeb.py:1869 +#: ../src/plugins/webreport/NarrativeWeb.py:3918 +#: ../src/plugins/webreport/NarrativeWeb.py:3963 msgid "Surnames" msgstr "Noms de famille" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:1764 -#: ../src/plugins/webreport/NarrativeWeb.py:1880 -#: ../src/plugins/webreport/NarrativeWeb.py:4802 +#: ../src/plugins/webreport/NarrativeWeb.py:1770 +#: ../src/plugins/webreport/NarrativeWeb.py:1886 +#: ../src/plugins/webreport/NarrativeWeb.py:4808 msgid "Thumbnails" msgstr "Aperçus" -#: ../src/plugins/webreport/NarrativeWeb.py:1765 -#: ../src/plugins/webreport/NarrativeWeb.py:1886 -#: ../src/plugins/webreport/NarrativeWeb.py:4976 -#: ../src/plugins/webreport/NarrativeWeb.py:8220 +#: ../src/plugins/webreport/NarrativeWeb.py:1771 +#: ../src/plugins/webreport/NarrativeWeb.py:1892 +#: ../src/plugins/webreport/NarrativeWeb.py:4982 +#: ../src/plugins/webreport/NarrativeWeb.py:8226 msgid "Download" msgstr "Télécharger" # espace limité dans la fenêtre, bug #3596 #. Add xml, doctype, meta and stylesheets -#: ../src/plugins/webreport/NarrativeWeb.py:1766 -#: ../src/plugins/webreport/NarrativeWeb.py:1824 -#: ../src/plugins/webreport/NarrativeWeb.py:1887 -#: ../src/plugins/webreport/NarrativeWeb.py:6707 -#: ../src/plugins/webreport/NarrativeWeb.py:6801 +#: ../src/plugins/webreport/NarrativeWeb.py:1772 +#: ../src/plugins/webreport/NarrativeWeb.py:1830 +#: ../src/plugins/webreport/NarrativeWeb.py:1893 +#: ../src/plugins/webreport/NarrativeWeb.py:6713 +#: ../src/plugins/webreport/NarrativeWeb.py:6807 msgid "Address Book" msgstr "Adresses" #. add contact column -#: ../src/plugins/webreport/NarrativeWeb.py:1767 -#: ../src/plugins/webreport/NarrativeWeb.py:1893 -#: ../src/plugins/webreport/NarrativeWeb.py:1923 -#: ../src/plugins/webreport/NarrativeWeb.py:5076 +#: ../src/plugins/webreport/NarrativeWeb.py:1773 +#: ../src/plugins/webreport/NarrativeWeb.py:1899 +#: ../src/plugins/webreport/NarrativeWeb.py:1929 +#: ../src/plugins/webreport/NarrativeWeb.py:5082 msgid "Contact" msgstr "Contact" # ou récit ? saga ? #. add section title -#: ../src/plugins/webreport/NarrativeWeb.py:2230 +#: ../src/plugins/webreport/NarrativeWeb.py:2236 msgid "Narrative" msgstr "Anecdote" -#: ../src/plugins/webreport/NarrativeWeb.py:2245 -#: ../src/plugins/webreport/NarrativeWeb.py:6738 +#: ../src/plugins/webreport/NarrativeWeb.py:2251 +#: ../src/plugins/webreport/NarrativeWeb.py:6744 msgid "Web Links" msgstr "Liens internet" -#: ../src/plugins/webreport/NarrativeWeb.py:2292 +#: ../src/plugins/webreport/NarrativeWeb.py:2298 msgid " [Click to Go]" msgstr " [Cliquez pour aller]" -#: ../src/plugins/webreport/NarrativeWeb.py:2315 +#: ../src/plugins/webreport/NarrativeWeb.py:2321 msgid "Latter-Day Saints/ LDS Ordinance" msgstr "Ordinance Mormons" -#: ../src/plugins/webreport/NarrativeWeb.py:2342 +#: ../src/plugins/webreport/NarrativeWeb.py:2348 msgid "Source References" msgstr "Références des sources" -#: ../src/plugins/webreport/NarrativeWeb.py:2445 -#: ../src/plugins/webreport/NarrativeWeb.py:5559 -#: ../src/plugins/webreport/NarrativeWeb.py:5816 +#: ../src/plugins/webreport/NarrativeWeb.py:2451 +#: ../src/plugins/webreport/NarrativeWeb.py:5565 +#: ../src/plugins/webreport/NarrativeWeb.py:5822 msgid "Family Map" msgstr "Carte de la famille" #. feature request 2356: avoid genitive form -#: ../src/plugins/webreport/NarrativeWeb.py:2885 +#: ../src/plugins/webreport/NarrativeWeb.py:2891 #, python-format msgid "This page contains an index of all the individuals in the database with the surname of %s. Selecting the person’s name will take you to that person’s individual page." msgstr "Cette page contient un index de tous les individus de la base de données avec le nom de famille %s. Sélectionnez le nom d'un individu pour accéder à sa page." #. Name Column -#: ../src/plugins/webreport/NarrativeWeb.py:2900 -#: ../src/plugins/webreport/NarrativeWeb.py:5222 +#: ../src/plugins/webreport/NarrativeWeb.py:2906 +#: ../src/plugins/webreport/NarrativeWeb.py:5228 msgid "Given Name" msgstr "Prénom" # Site internet descriptif ou narratif ? #. set progress bar pass for Repositories -#: ../src/plugins/webreport/NarrativeWeb.py:3044 -#: ../src/plugins/webreport/NarrativeWeb.py:3321 -#: ../src/plugins/webreport/NarrativeWeb.py:3606 -#: ../src/plugins/webreport/NarrativeWeb.py:4151 -#: ../src/plugins/webreport/NarrativeWeb.py:4366 -#: ../src/plugins/webreport/NarrativeWeb.py:5166 -#: ../src/plugins/webreport/NarrativeWeb.py:6547 -#: ../src/plugins/webreport/NarrativeWeb.py:7164 -#: ../src/plugins/webreport/NarrativeWeb.py:7171 -#: ../src/plugins/webreport/NarrativeWeb.py:7591 -#: ../src/plugins/webreport/NarrativeWeb.py:7635 -#: ../src/plugins/webreport/NarrativeWeb.py:7653 -#: ../src/plugins/webreport/NarrativeWeb.py:7695 +#: ../src/plugins/webreport/NarrativeWeb.py:3050 +#: ../src/plugins/webreport/NarrativeWeb.py:3327 +#: ../src/plugins/webreport/NarrativeWeb.py:3612 +#: ../src/plugins/webreport/NarrativeWeb.py:4157 +#: ../src/plugins/webreport/NarrativeWeb.py:4372 +#: ../src/plugins/webreport/NarrativeWeb.py:5172 +#: ../src/plugins/webreport/NarrativeWeb.py:6553 +#: ../src/plugins/webreport/NarrativeWeb.py:7170 +#: ../src/plugins/webreport/NarrativeWeb.py:7177 +#: ../src/plugins/webreport/NarrativeWeb.py:7597 +#: ../src/plugins/webreport/NarrativeWeb.py:7641 +#: ../src/plugins/webreport/NarrativeWeb.py:7659 +#: ../src/plugins/webreport/NarrativeWeb.py:7701 msgid "Narrated Web Site Report" msgstr "Saga" # trunk # Substantif (GNOME fr) -#: ../src/plugins/webreport/NarrativeWeb.py:3045 +#: ../src/plugins/webreport/NarrativeWeb.py:3051 msgid "Creating family pages..." msgstr "Création des pages familiales..." # trunk # titre = nom #. Families list page message -#: ../src/plugins/webreport/NarrativeWeb.py:3067 +#: ../src/plugins/webreport/NarrativeWeb.py:3073 msgid "This page contains an index of all the families/ relationships in the database, sorted by their family name/ surname. Clicking on a person’s name will take you to their family/ relationship’s page." msgstr "Cette page contient un index de toutes les familles et relations de la base de données, trié par nom de famille. Cliquez sur le nom pour accéder à la page de la famille." -#: ../src/plugins/webreport/NarrativeWeb.py:3108 -#: ../src/plugins/webreport/NarrativeWeb.py:3371 -#: ../src/plugins/webreport/NarrativeWeb.py:3659 -#: ../src/plugins/webreport/NarrativeWeb.py:3951 +#: ../src/plugins/webreport/NarrativeWeb.py:3114 +#: ../src/plugins/webreport/NarrativeWeb.py:3377 +#: ../src/plugins/webreport/NarrativeWeb.py:3665 +#: ../src/plugins/webreport/NarrativeWeb.py:3957 msgid "Letter" msgstr "Lettre" -#: ../src/plugins/webreport/NarrativeWeb.py:3147 +#: ../src/plugins/webreport/NarrativeWeb.py:3153 msgid "Families beginning with letter " msgstr "Familles commençant par la lettre " # Substantif (GNOME fr) -#: ../src/plugins/webreport/NarrativeWeb.py:3322 +#: ../src/plugins/webreport/NarrativeWeb.py:3328 msgid "Creating place pages" msgstr "Création des pages pour le lieu" # titre = nom #. place list page message -#: ../src/plugins/webreport/NarrativeWeb.py:3346 +#: ../src/plugins/webreport/NarrativeWeb.py:3352 msgid "This page contains an index of all the places in the database, sorted by their title. Clicking on a place’s title will take you to that place’s page." msgstr "Cette page contient un index de tous les lieux de la base de données, classés par nom. Cliquez sur le lieux pour accéder à sa page." -#: ../src/plugins/webreport/NarrativeWeb.py:3372 +#: ../src/plugins/webreport/NarrativeWeb.py:3378 msgid "Place Name | Name" msgstr "Nom du lieu" -#: ../src/plugins/webreport/NarrativeWeb.py:3411 +#: ../src/plugins/webreport/NarrativeWeb.py:3417 #, python-format msgid "Places beginning with letter %s" msgstr "Lieux commençant par la lettre %s" #. section title -#: ../src/plugins/webreport/NarrativeWeb.py:3523 +#: ../src/plugins/webreport/NarrativeWeb.py:3529 msgid "Place Map" msgstr "Carte du lieu" # Substantif (GNOME fr) -#: ../src/plugins/webreport/NarrativeWeb.py:3607 +#: ../src/plugins/webreport/NarrativeWeb.py:3613 msgid "Creating event pages" msgstr "Création des pages pour l'événement" -#: ../src/plugins/webreport/NarrativeWeb.py:3634 +#: ../src/plugins/webreport/NarrativeWeb.py:3640 msgid "This page contains an index of all the events in the database, sorted by their type and date (if one is present). Clicking on an event’s Gramps ID will open a page for that event." msgstr "Cette page contient un index de tous les événements de la base de données, classés par nom, identifiant Gramps et date (si présente). Cliquez sur un événement Gramps pour accéder à sa page." -#: ../src/plugins/webreport/NarrativeWeb.py:3716 +#: ../src/plugins/webreport/NarrativeWeb.py:3722 #, python-format msgid "Event types beginning with letter %s" msgstr "Types d'événement commençant par la lettre %s" -#: ../src/plugins/webreport/NarrativeWeb.py:3915 +#: ../src/plugins/webreport/NarrativeWeb.py:3921 msgid "Surnames by person count" msgstr "Patronymes par compte individuel" #. page message -#: ../src/plugins/webreport/NarrativeWeb.py:3922 +#: ../src/plugins/webreport/NarrativeWeb.py:3928 msgid "This page contains an index of all the surnames in the database. Selecting a link will lead to a list of individuals in the database with this same surname." msgstr "Cette page contient un index de tous les patronymes de la base de données. Sélectionnez un lien pour accéder à la liste des individus portant ce nom." -#: ../src/plugins/webreport/NarrativeWeb.py:3964 +#: ../src/plugins/webreport/NarrativeWeb.py:3970 msgid "Number of People" msgstr "Nombre d'individus" -#: ../src/plugins/webreport/NarrativeWeb.py:4009 +#: ../src/plugins/webreport/NarrativeWeb.py:4015 #, python-format msgid "Surnames beginning with letter %s" msgstr "Noms de famille commençant par la lettre %s" # Substantif (GNOME fr) -#: ../src/plugins/webreport/NarrativeWeb.py:4152 +#: ../src/plugins/webreport/NarrativeWeb.py:4158 msgid "Creating source pages" msgstr "Création des pages pour la source" # titre = nom -#: ../src/plugins/webreport/NarrativeWeb.py:4193 +#: ../src/plugins/webreport/NarrativeWeb.py:4199 msgid "This page contains an index of all the sources in the database, sorted by their title. Clicking on a source’s title will take you to that source’s page." msgstr "Cette page contient un index de toutes les sources de la base de données, classées par nom. Cliquez sur une source pour accéder à sa page." -#: ../src/plugins/webreport/NarrativeWeb.py:4209 +#: ../src/plugins/webreport/NarrativeWeb.py:4215 msgid "Source Name|Name" msgstr "Nom de la source" -#: ../src/plugins/webreport/NarrativeWeb.py:4292 +#: ../src/plugins/webreport/NarrativeWeb.py:4298 msgid "Publication information" msgstr "Informations de publication" # Substantif (GNOME fr) -#: ../src/plugins/webreport/NarrativeWeb.py:4367 +#: ../src/plugins/webreport/NarrativeWeb.py:4373 msgid "Creating media pages" msgstr "Création des pages pour le medium" # titre = nom # ’ ? -#: ../src/plugins/webreport/NarrativeWeb.py:4405 +#: ../src/plugins/webreport/NarrativeWeb.py:4411 msgid "This page contains an index of all the media objects in the database, sorted by their title. Clicking on the title will take you to that media object’s page. If you see media size dimensions above an image, click on the image to see the full sized version. " msgstr "Cette page contient un index de tous les objets media de la base de données, classés par titre. Cliquez sur le nom pour ouvrir la page. Si vous voyez les dimensions au-dessus de l'image, cliquez sur l'image pour la voir dans sa taille réelle." -#: ../src/plugins/webreport/NarrativeWeb.py:4427 +#: ../src/plugins/webreport/NarrativeWeb.py:4433 msgid "Media | Name" msgstr "Nom du medium" -#: ../src/plugins/webreport/NarrativeWeb.py:4429 +#: ../src/plugins/webreport/NarrativeWeb.py:4435 msgid "Mime Type" msgstr "Type mime" -#: ../src/plugins/webreport/NarrativeWeb.py:4538 +#: ../src/plugins/webreport/NarrativeWeb.py:4544 msgid "Previous" msgstr "Précédent" -#: ../src/plugins/webreport/NarrativeWeb.py:4539 +#: ../src/plugins/webreport/NarrativeWeb.py:4545 #, python-format msgid "%(page_number)d of %(total_pages)d" msgstr "%(page_number)d sur %(total_pages)d" -#: ../src/plugins/webreport/NarrativeWeb.py:4544 +#: ../src/plugins/webreport/NarrativeWeb.py:4550 msgid "Next" msgstr "Suivant" #. missing media error message -#: ../src/plugins/webreport/NarrativeWeb.py:4547 +#: ../src/plugins/webreport/NarrativeWeb.py:4553 msgid "The file has been moved or deleted." msgstr "Ce fichier a été déplacé ou supprimé." -#: ../src/plugins/webreport/NarrativeWeb.py:4687 +#: ../src/plugins/webreport/NarrativeWeb.py:4693 msgid "File Type" msgstr "Type de fichier" -#: ../src/plugins/webreport/NarrativeWeb.py:4770 +#: ../src/plugins/webreport/NarrativeWeb.py:4776 msgid "Missing media object:" msgstr "Objet medium absent :" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:4807 +#: ../src/plugins/webreport/NarrativeWeb.py:4813 msgid "This page displays a indexed list of all the media objects in this database. It is sorted by media title. There is an index of all the media objects in this database. Clicking on a thumbnail will take you to that image’s page." msgstr "Cette page affiche une liste indexée de tous les media de la base de données, classés par titre. Il y a un index de tous les objets media de la base de données. Cliquez sur un aperçu pour aller sur la page de l'image." # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:4823 +#: ../src/plugins/webreport/NarrativeWeb.py:4829 msgid "Thumbnail Preview" msgstr "Aperçu de la miniature" -#: ../src/plugins/webreport/NarrativeWeb.py:4982 +#: ../src/plugins/webreport/NarrativeWeb.py:4988 msgid "This page is for the user/ creator of this Family Tree/ Narrative website to share a couple of files with you regarding their family. If there are any files listed below, clicking on them will allow you to download them. The download page and files have the same copyright as the remainder of these web pages." msgstr "Cette page est pour l'utilisateur, le créateur de cet arbre familial, lui permettant de partager un ensemble de fichiers concernant sa famille. Si il y a des fichiers, cliquez sur l'un d'entre eux pour le télécharger. La page de téléchargement et les fichiers ont le même droit à la copie que les autres pages internet." -#: ../src/plugins/webreport/NarrativeWeb.py:5003 +#: ../src/plugins/webreport/NarrativeWeb.py:5009 msgid "File Name" msgstr "Nom du fichier" -#: ../src/plugins/webreport/NarrativeWeb.py:5005 +#: ../src/plugins/webreport/NarrativeWeb.py:5011 msgid "Last Modified" msgstr "Dernière modification" # Substantif (GNOME fr) -#: ../src/plugins/webreport/NarrativeWeb.py:5167 +#: ../src/plugins/webreport/NarrativeWeb.py:5173 msgid "Creating individual pages" msgstr "Création des pages pour l'individu" #. Individual List page message -#: ../src/plugins/webreport/NarrativeWeb.py:5200 +#: ../src/plugins/webreport/NarrativeWeb.py:5206 msgid "This page contains an index of all the individuals in the database, sorted by their last names. Selecting the person’s name will take you to that person’s individual page." msgstr "Cette page contient un index de tous les individus de la base de données, classés par nom. Sélectionnez le nom d'un individu pour accéder à sa page." -#: ../src/plugins/webreport/NarrativeWeb.py:5267 +#: ../src/plugins/webreport/NarrativeWeb.py:5273 #, python-format msgid "Surnames %(surname)s beginning with letter %(letter)s" msgstr "Noms de famille %(surname)s commençant par la lettre %(letter)s" # nom de l'individu #. add page title -#: ../src/plugins/webreport/NarrativeWeb.py:5684 +#: ../src/plugins/webreport/NarrativeWeb.py:5690 #, python-format msgid "Tracking %s" msgstr "Suivi de %s" # trunk #. page description -#: ../src/plugins/webreport/NarrativeWeb.py:5688 +#: ../src/plugins/webreport/NarrativeWeb.py:5694 msgid "This map page represents the person and any descendants with all of their event/ places. If you place your mouse over the marker it will display the place name. The markers and the Reference list are sorted in date order (if any?). Clicking on a place’s name in the Reference section will take you to that place’s page." msgstr "Cette page carte représente l'individu et ses descendants avec leurs événements / lieux. Si vous passez le curseur de votre souris au-dessus du marqueur vous obtiendrez le nom du lieu. Les marqueurs et la liste de référence sont triés par date (si elle existe). Cliquez sur le nom du lieu dans la section référence pour accéder la page du lieu." -#: ../src/plugins/webreport/NarrativeWeb.py:5754 +#: ../src/plugins/webreport/NarrativeWeb.py:5760 msgid "Drop Markers" msgstr "Parachuter les marqueurs" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:5774 +#: ../src/plugins/webreport/NarrativeWeb.py:5780 msgid "Place Title" msgstr "Titre du lieu" -#: ../src/plugins/webreport/NarrativeWeb.py:5936 +#: ../src/plugins/webreport/NarrativeWeb.py:5942 msgid "Ancestors" msgstr "Ascendants" -#: ../src/plugins/webreport/NarrativeWeb.py:5992 +#: ../src/plugins/webreport/NarrativeWeb.py:5998 msgid "Associations" msgstr "Associations" # call name = prénom dans le context ! -#: ../src/plugins/webreport/NarrativeWeb.py:6182 +#: ../src/plugins/webreport/NarrativeWeb.py:6188 msgid "Call Name" msgstr "Prénom usuel" -#: ../src/plugins/webreport/NarrativeWeb.py:6198 +#: ../src/plugins/webreport/NarrativeWeb.py:6204 msgid "Nick Name" msgstr "Surnom" -#: ../src/plugins/webreport/NarrativeWeb.py:6236 +#: ../src/plugins/webreport/NarrativeWeb.py:6242 msgid "Age at Death" msgstr "Âge au décès" @@ -24747,288 +24753,288 @@ msgstr "Âge au décès" #. actually be StepFather-in-law), but it is too expensive to #. calculate out the correct relationship using the Relationship #. Calculator -#: ../src/plugins/webreport/NarrativeWeb.py:6327 +#: ../src/plugins/webreport/NarrativeWeb.py:6333 msgid "Stepfather" msgstr "Beau-père" -#: ../src/plugins/webreport/NarrativeWeb.py:6337 +#: ../src/plugins/webreport/NarrativeWeb.py:6343 msgid "Stepmother" msgstr "Belle-mère" -#: ../src/plugins/webreport/NarrativeWeb.py:6361 +#: ../src/plugins/webreport/NarrativeWeb.py:6367 msgid "Not siblings" msgstr "Non frère ou sœur" -#: ../src/plugins/webreport/NarrativeWeb.py:6422 +#: ../src/plugins/webreport/NarrativeWeb.py:6428 msgid "Relation to main person" msgstr "Relation avec la souche" -#: ../src/plugins/webreport/NarrativeWeb.py:6424 +#: ../src/plugins/webreport/NarrativeWeb.py:6430 msgid "Relation within this family (if not by birth)" msgstr "Relation dans la famille (si différent de la naissance)" # Substantif (GNOME fr) -#: ../src/plugins/webreport/NarrativeWeb.py:6548 +#: ../src/plugins/webreport/NarrativeWeb.py:6554 msgid "Creating repository pages" msgstr "Création des pages dépôt" # titre = nom -#: ../src/plugins/webreport/NarrativeWeb.py:6581 +#: ../src/plugins/webreport/NarrativeWeb.py:6587 msgid "This page contains an index of all the repositories in the database, sorted by their title. Clicking on a repositories’s title will take you to that repositories’s page." msgstr "Cette page contient un index de tous les dépôts de la base de données, classés par nom. Cliquez sur le nom d'un dépôt pour accéder à sa page." -#: ../src/plugins/webreport/NarrativeWeb.py:6596 +#: ../src/plugins/webreport/NarrativeWeb.py:6602 msgid "Repository |Name" msgstr "Nom du dépôt" #. Address Book Page message -#: ../src/plugins/webreport/NarrativeWeb.py:6714 +#: ../src/plugins/webreport/NarrativeWeb.py:6720 msgid "This page contains an index of all the individuals in the database, sorted by their surname, with one of the following: Address, Residence, or Web Links. Selecting the person’s name will take you to their individual Address Book page." msgstr "Cette page contient un index de tous les individus de la base de données, classés par nom de famille, avec soit une adresse, une résidence ou des liens internet. Sélectionnez le nom d'un individu pour accéder à sa page." # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:6735 +#: ../src/plugins/webreport/NarrativeWeb.py:6741 msgid "Full Name" msgstr "Nom complet" -#: ../src/plugins/webreport/NarrativeWeb.py:6968 +#: ../src/plugins/webreport/NarrativeWeb.py:6974 #, python-format msgid "Neither %(current)s nor %(parent)s are directories" msgstr "Ni %(current)s ni %(parent)s ne sont des répertoires" -#: ../src/plugins/webreport/NarrativeWeb.py:6976 -#: ../src/plugins/webreport/NarrativeWeb.py:6981 -#: ../src/plugins/webreport/NarrativeWeb.py:6994 -#: ../src/plugins/webreport/NarrativeWeb.py:6999 +#: ../src/plugins/webreport/NarrativeWeb.py:6982 +#: ../src/plugins/webreport/NarrativeWeb.py:6987 +#: ../src/plugins/webreport/NarrativeWeb.py:7000 +#: ../src/plugins/webreport/NarrativeWeb.py:7005 #, python-format msgid "Could not create the directory: %s" msgstr "Impossible de créer le répertoire : %s" -#: ../src/plugins/webreport/NarrativeWeb.py:7005 +#: ../src/plugins/webreport/NarrativeWeb.py:7011 msgid "Invalid file name" msgstr "Nom de fichier invalide" -#: ../src/plugins/webreport/NarrativeWeb.py:7006 +#: ../src/plugins/webreport/NarrativeWeb.py:7012 msgid "The archive file must be a file, not a directory" msgstr "L'archive doit être un fichier, pas un répertoire" -#: ../src/plugins/webreport/NarrativeWeb.py:7128 +#: ../src/plugins/webreport/NarrativeWeb.py:7134 #, python-format msgid "ID=%(grampsid)s, path=%(dir)s" msgstr "ID=%(grampsid)s, chemin=%(dir)s" -#: ../src/plugins/webreport/NarrativeWeb.py:7133 +#: ../src/plugins/webreport/NarrativeWeb.py:7139 msgid "Missing media objects:" msgstr "Objets media manquants :" # Substantif (GNOME fr) -#: ../src/plugins/webreport/NarrativeWeb.py:7165 +#: ../src/plugins/webreport/NarrativeWeb.py:7171 msgid "Applying Person Filter..." msgstr "Application du filtre individu..." # Substantif (GNOME fr) -#: ../src/plugins/webreport/NarrativeWeb.py:7172 +#: ../src/plugins/webreport/NarrativeWeb.py:7178 msgid "Constructing list of other objects..." msgstr "Construction d'une liste d'autres objets..." -#: ../src/plugins/webreport/NarrativeWeb.py:7380 +#: ../src/plugins/webreport/NarrativeWeb.py:7386 #, python-format msgid "Family of %s and %s" msgstr "Famille de %s et %s" #. Only the name of the husband is known #. Only the name of the wife is known -#: ../src/plugins/webreport/NarrativeWeb.py:7384 -#: ../src/plugins/webreport/NarrativeWeb.py:7388 +#: ../src/plugins/webreport/NarrativeWeb.py:7390 +#: ../src/plugins/webreport/NarrativeWeb.py:7394 #, python-format msgid "Family of %s" msgstr "Famille de %s" -#: ../src/plugins/webreport/NarrativeWeb.py:7592 +#: ../src/plugins/webreport/NarrativeWeb.py:7598 msgid "Creating GENDEX file" msgstr "Création d'un fichier GENDEX" # Substantif (GNOME fr) -#: ../src/plugins/webreport/NarrativeWeb.py:7636 +#: ../src/plugins/webreport/NarrativeWeb.py:7642 msgid "Creating surname pages" msgstr "Création des pages pour le patronyme" # trunk # Substantif (GNOME fr) -#: ../src/plugins/webreport/NarrativeWeb.py:7654 +#: ../src/plugins/webreport/NarrativeWeb.py:7660 msgid "Creating thumbnail preview page..." msgstr "Création des pages pour les miniatures..." # Substantif (GNOME fr) -#: ../src/plugins/webreport/NarrativeWeb.py:7696 +#: ../src/plugins/webreport/NarrativeWeb.py:7702 msgid "Creating address book pages ..." msgstr "Création des pages adresses ..." -#: ../src/plugins/webreport/NarrativeWeb.py:7997 +#: ../src/plugins/webreport/NarrativeWeb.py:8003 msgid "Store web pages in .tar.gz archive" msgstr "Extrait les pages Web en archive .tar.gz" -#: ../src/plugins/webreport/NarrativeWeb.py:7999 +#: ../src/plugins/webreport/NarrativeWeb.py:8005 msgid "Whether to store the web pages in an archive file" msgstr "Conserver ou non les pages internet dans un format d'archive" -#: ../src/plugins/webreport/NarrativeWeb.py:8006 +#: ../src/plugins/webreport/NarrativeWeb.py:8012 #: ../src/plugins/webreport/WebCal.py:1311 msgid "Destination" msgstr "Destination" -#: ../src/plugins/webreport/NarrativeWeb.py:8009 +#: ../src/plugins/webreport/NarrativeWeb.py:8015 #: ../src/plugins/webreport/WebCal.py:1314 msgid "The destination directory for the web files" msgstr "Le répertoire de destination pour les fichiers internet" -#: ../src/plugins/webreport/NarrativeWeb.py:8015 +#: ../src/plugins/webreport/NarrativeWeb.py:8021 msgid "Web site title" msgstr "Titre du site" -#: ../src/plugins/webreport/NarrativeWeb.py:8015 +#: ../src/plugins/webreport/NarrativeWeb.py:8021 msgid "My Family Tree" msgstr "Mon arbre généalogique" -#: ../src/plugins/webreport/NarrativeWeb.py:8016 +#: ../src/plugins/webreport/NarrativeWeb.py:8022 msgid "The title of the web site" msgstr "Le titre du site internet" -#: ../src/plugins/webreport/NarrativeWeb.py:8021 +#: ../src/plugins/webreport/NarrativeWeb.py:8027 msgid "Select filter to restrict people that appear on web site" msgstr "Sélectionnez un filtre pour restreindre les individus qui apparaîtront dans le site web" -#: ../src/plugins/webreport/NarrativeWeb.py:8048 +#: ../src/plugins/webreport/NarrativeWeb.py:8054 #: ../src/plugins/webreport/WebCal.py:1351 msgid "File extension" msgstr "Extension" -#: ../src/plugins/webreport/NarrativeWeb.py:8051 +#: ../src/plugins/webreport/NarrativeWeb.py:8057 #: ../src/plugins/webreport/WebCal.py:1354 msgid "The extension to be used for the web files" msgstr "L'extension utilisée pour les fichiers internet" -#: ../src/plugins/webreport/NarrativeWeb.py:8054 +#: ../src/plugins/webreport/NarrativeWeb.py:8060 #: ../src/plugins/webreport/WebCal.py:1357 msgid "Copyright" msgstr "Licence" -#: ../src/plugins/webreport/NarrativeWeb.py:8057 +#: ../src/plugins/webreport/NarrativeWeb.py:8063 #: ../src/plugins/webreport/WebCal.py:1360 msgid "The copyright to be used for the web files" msgstr "Le droit d'auteur utilisé pour les fichiers internet" -#: ../src/plugins/webreport/NarrativeWeb.py:8060 +#: ../src/plugins/webreport/NarrativeWeb.py:8066 #: ../src/plugins/webreport/WebCal.py:1366 msgid "StyleSheet" msgstr "Feuille de style" -#: ../src/plugins/webreport/NarrativeWeb.py:8065 +#: ../src/plugins/webreport/NarrativeWeb.py:8071 #: ../src/plugins/webreport/WebCal.py:1369 msgid "The stylesheet to be used for the web pages" msgstr "La feuille de style utilisée pour les pages internet" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:8070 +#: ../src/plugins/webreport/NarrativeWeb.py:8076 msgid "Horizontal -- Default" msgstr "Horizontal -- défaut" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:8071 +#: ../src/plugins/webreport/NarrativeWeb.py:8077 msgid "Vertical -- Left Side" msgstr "Vertical -- côté gauche" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:8072 +#: ../src/plugins/webreport/NarrativeWeb.py:8078 msgid "Fade -- WebKit Browsers Only" msgstr "Fondu -- que pour les navigateurs Webkit" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:8073 -#: ../src/plugins/webreport/NarrativeWeb.py:8085 +#: ../src/plugins/webreport/NarrativeWeb.py:8079 +#: ../src/plugins/webreport/NarrativeWeb.py:8091 msgid "Drop-Down -- WebKit Browsers Only" msgstr "Abaissé -- que pour les navigateurs Webkit" # espace limité -#: ../src/plugins/webreport/NarrativeWeb.py:8075 +#: ../src/plugins/webreport/NarrativeWeb.py:8081 msgid "Navigation Menu Layout" msgstr "Mise en page" -#: ../src/plugins/webreport/NarrativeWeb.py:8078 +#: ../src/plugins/webreport/NarrativeWeb.py:8084 msgid "Choose which layout for the Navigation Menus." msgstr "Choisissez la mise en page pour les menus de navigation." -#: ../src/plugins/webreport/NarrativeWeb.py:8084 +#: ../src/plugins/webreport/NarrativeWeb.py:8090 msgid "Normal Outline Style" msgstr "Style normal de bordure" # espace limité -#: ../src/plugins/webreport/NarrativeWeb.py:8087 +#: ../src/plugins/webreport/NarrativeWeb.py:8093 msgid "Citation Referents Layout" msgstr "Mise en page des références de citation" -#: ../src/plugins/webreport/NarrativeWeb.py:8090 +#: ../src/plugins/webreport/NarrativeWeb.py:8096 msgid "Determine the default layout for the Source Page's Citation Referents section" msgstr "Déterminer la mise en page par défaut pour la section Références de la citation dans la page source" # en général plusieurs ascendants -#: ../src/plugins/webreport/NarrativeWeb.py:8094 +#: ../src/plugins/webreport/NarrativeWeb.py:8100 msgid "Include ancestor's tree" msgstr "Inclure un arbre des ascendants" -#: ../src/plugins/webreport/NarrativeWeb.py:8095 +#: ../src/plugins/webreport/NarrativeWeb.py:8101 msgid "Whether to include an ancestor graph on each individual page" msgstr "Inclure ou non un arbre des ascendants sur chaque page des individus" -#: ../src/plugins/webreport/NarrativeWeb.py:8099 +#: ../src/plugins/webreport/NarrativeWeb.py:8105 msgid "Graph generations" msgstr "Générations" -#: ../src/plugins/webreport/NarrativeWeb.py:8100 +#: ../src/plugins/webreport/NarrativeWeb.py:8106 msgid "The number of generations to include in the ancestor graph" msgstr "Le nombre de générations à inclure dans l'arbre des ascendants" -#: ../src/plugins/webreport/NarrativeWeb.py:8110 +#: ../src/plugins/webreport/NarrativeWeb.py:8116 msgid "Page Generation" msgstr "Création de page" -#: ../src/plugins/webreport/NarrativeWeb.py:8113 +#: ../src/plugins/webreport/NarrativeWeb.py:8119 msgid "Home page note" msgstr "Note de la page d'accueil" -#: ../src/plugins/webreport/NarrativeWeb.py:8114 +#: ../src/plugins/webreport/NarrativeWeb.py:8120 msgid "A note to be used on the home page" msgstr "La note utilisée pour la page d'accueil" -#: ../src/plugins/webreport/NarrativeWeb.py:8117 +#: ../src/plugins/webreport/NarrativeWeb.py:8123 msgid "Home page image" msgstr "Image de la page d'accueil" -#: ../src/plugins/webreport/NarrativeWeb.py:8118 +#: ../src/plugins/webreport/NarrativeWeb.py:8124 msgid "An image to be used on the home page" msgstr "L'image utilisée en page d'accueil" -#: ../src/plugins/webreport/NarrativeWeb.py:8121 +#: ../src/plugins/webreport/NarrativeWeb.py:8127 msgid "Introduction note" msgstr "Note d'introduction" -#: ../src/plugins/webreport/NarrativeWeb.py:8122 +#: ../src/plugins/webreport/NarrativeWeb.py:8128 msgid "A note to be used as the introduction" msgstr "La note utilisée en introduction" -#: ../src/plugins/webreport/NarrativeWeb.py:8125 +#: ../src/plugins/webreport/NarrativeWeb.py:8131 msgid "Introduction image" msgstr "Image d'introduction" -#: ../src/plugins/webreport/NarrativeWeb.py:8126 +#: ../src/plugins/webreport/NarrativeWeb.py:8132 msgid "An image to be used as the introduction" msgstr "L'image utilisée en introduction" -#: ../src/plugins/webreport/NarrativeWeb.py:8129 +#: ../src/plugins/webreport/NarrativeWeb.py:8135 msgid "Publisher contact note" msgstr "Note de la page contact" -#: ../src/plugins/webreport/NarrativeWeb.py:8130 +#: ../src/plugins/webreport/NarrativeWeb.py:8136 msgid "" "A note to be used as the publisher contact.\n" "If no publisher information is given,\n" @@ -25038,11 +25044,11 @@ msgstr "" "Si aucune information sur l'auteur n'est donnée,\n" "alors aucune page contact ne sera créée." -#: ../src/plugins/webreport/NarrativeWeb.py:8136 +#: ../src/plugins/webreport/NarrativeWeb.py:8142 msgid "Publisher contact image" msgstr "Image de la page contact" -#: ../src/plugins/webreport/NarrativeWeb.py:8137 +#: ../src/plugins/webreport/NarrativeWeb.py:8143 msgid "" "An image to be used as the publisher contact.\n" "If no publisher information is given,\n" @@ -25053,65 +25059,65 @@ msgstr "" "alors aucune page contact ne sera créée." # espace limité dans la fenêtre, bug #3596 -#: ../src/plugins/webreport/NarrativeWeb.py:8143 +#: ../src/plugins/webreport/NarrativeWeb.py:8149 msgid "HTML user header" msgstr "En-tête HTML" -#: ../src/plugins/webreport/NarrativeWeb.py:8144 +#: ../src/plugins/webreport/NarrativeWeb.py:8150 msgid "A note to be used as the page header" msgstr "La note utilisée pour l'en-tête de la page" # espace limité dans la fenêtre, bug #3596 -#: ../src/plugins/webreport/NarrativeWeb.py:8147 +#: ../src/plugins/webreport/NarrativeWeb.py:8153 msgid "HTML user footer" msgstr "Pied de page HTML" -#: ../src/plugins/webreport/NarrativeWeb.py:8148 +#: ../src/plugins/webreport/NarrativeWeb.py:8154 msgid "A note to be used as the page footer" msgstr "La note utilisée pour le pied de page" -#: ../src/plugins/webreport/NarrativeWeb.py:8151 +#: ../src/plugins/webreport/NarrativeWeb.py:8157 msgid "Include images and media objects" msgstr "Inclure images et objets media" -#: ../src/plugins/webreport/NarrativeWeb.py:8152 +#: ../src/plugins/webreport/NarrativeWeb.py:8158 msgid "Whether to include a gallery of media objects" msgstr "Inclure ou non une galerie des objets media" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:8156 +#: ../src/plugins/webreport/NarrativeWeb.py:8162 msgid "Create and only use thumbnail- sized images" msgstr "Créer et utiliser uniquement les aperçus des images" -#: ../src/plugins/webreport/NarrativeWeb.py:8157 +#: ../src/plugins/webreport/NarrativeWeb.py:8163 msgid "This option allows you to create only thumbnail images instead of the full-sized images on the Media Page. This will allow you to have a much smaller total upload size to your web hosting site." msgstr "Cette option vous permet de choisir de créer uniquement les aperçus des images plutôt que les images en taille réelle dans la page Media. Ceci vous permettra d'obtenir une archive plus petite à envoyer sur votre site internet hébergé." -#: ../src/plugins/webreport/NarrativeWeb.py:8163 +#: ../src/plugins/webreport/NarrativeWeb.py:8169 msgid "Max width of initial image" msgstr "Largeur max de l'image initiale" -#: ../src/plugins/webreport/NarrativeWeb.py:8165 +#: ../src/plugins/webreport/NarrativeWeb.py:8171 msgid "This allows you to set the maximum width of the image shown on the media page. Set to 0 for no limit." msgstr "Permet de définir la largeur maximum de l'image affichée dans la page media. Définissez 0 pour ignorer la limitation." -#: ../src/plugins/webreport/NarrativeWeb.py:8169 +#: ../src/plugins/webreport/NarrativeWeb.py:8175 msgid "Max height of initial image" msgstr "Hauteur max de l'image initiale" -#: ../src/plugins/webreport/NarrativeWeb.py:8171 +#: ../src/plugins/webreport/NarrativeWeb.py:8177 msgid "This allows you to set the maximum height of the image shown on the media page. Set to 0 for no limit." msgstr "Permet de définir la hauteur maximum de l'image affichée dans la page media. Définissez 0 pour ignorer la limitation." -#: ../src/plugins/webreport/NarrativeWeb.py:8177 +#: ../src/plugins/webreport/NarrativeWeb.py:8183 msgid "Suppress Gramps ID" msgstr "Supprimer les identifiants Gramps" -#: ../src/plugins/webreport/NarrativeWeb.py:8178 +#: ../src/plugins/webreport/NarrativeWeb.py:8184 msgid "Whether to include the Gramps ID of objects" msgstr "Inclure ou non les identifiants Gramps des objets" -#: ../src/plugins/webreport/NarrativeWeb.py:8185 +#: ../src/plugins/webreport/NarrativeWeb.py:8191 #: ../src/glade/editperson.glade.h:22 #: ../src/glade/editsource.glade.h:13 #: ../src/glade/editcitation.glade.h:17 @@ -25135,254 +25141,254 @@ msgstr "Inclure ou non les identifiants Gramps des objets" msgid "Privacy" msgstr "Vie privée" -#: ../src/plugins/webreport/NarrativeWeb.py:8188 +#: ../src/plugins/webreport/NarrativeWeb.py:8194 msgid "Include records marked private" msgstr "Inclure les données privées" -#: ../src/plugins/webreport/NarrativeWeb.py:8189 +#: ../src/plugins/webreport/NarrativeWeb.py:8195 msgid "Whether to include private objects" msgstr "Inclure ou non les objets privés" -#: ../src/plugins/webreport/NarrativeWeb.py:8192 +#: ../src/plugins/webreport/NarrativeWeb.py:8198 msgid "Living People" msgstr "Individus vivants" -#: ../src/plugins/webreport/NarrativeWeb.py:8197 +#: ../src/plugins/webreport/NarrativeWeb.py:8203 msgid "Include Last Name Only" msgstr "N'inclure que le nom" -#: ../src/plugins/webreport/NarrativeWeb.py:8199 +#: ../src/plugins/webreport/NarrativeWeb.py:8205 msgid "Include Full Name Only" msgstr "Inclure le nom complet" # Substantif (GNOME fr) -#: ../src/plugins/webreport/NarrativeWeb.py:8202 +#: ../src/plugins/webreport/NarrativeWeb.py:8208 msgid "How to handle living people" msgstr "Gestion des individus vivants" -#: ../src/plugins/webreport/NarrativeWeb.py:8206 +#: ../src/plugins/webreport/NarrativeWeb.py:8212 msgid "Years from death to consider living" msgstr "Années depuis le décès" -#: ../src/plugins/webreport/NarrativeWeb.py:8208 +#: ../src/plugins/webreport/NarrativeWeb.py:8214 msgid "This allows you to restrict information on people who have not been dead for very long" msgstr "Ceci vous permet de restreindre l'information sur les individus décédés il y a peu de temps" -#: ../src/plugins/webreport/NarrativeWeb.py:8223 +#: ../src/plugins/webreport/NarrativeWeb.py:8229 msgid "Include download page" msgstr "Inclure une page téléchargement" -#: ../src/plugins/webreport/NarrativeWeb.py:8224 +#: ../src/plugins/webreport/NarrativeWeb.py:8230 msgid "Whether to include a database download option" msgstr "Inclure ou non une option pour télécharger une base de données" # espace limité dans la fenêtre, bug #3596 -#: ../src/plugins/webreport/NarrativeWeb.py:8228 -#: ../src/plugins/webreport/NarrativeWeb.py:8237 +#: ../src/plugins/webreport/NarrativeWeb.py:8234 +#: ../src/plugins/webreport/NarrativeWeb.py:8243 msgid "Download Filename" msgstr "Nom du fichier" -#: ../src/plugins/webreport/NarrativeWeb.py:8230 -#: ../src/plugins/webreport/NarrativeWeb.py:8239 +#: ../src/plugins/webreport/NarrativeWeb.py:8236 +#: ../src/plugins/webreport/NarrativeWeb.py:8245 msgid "File to be used for downloading of database" msgstr "Fichier prévu pour être téléchargé" # espace limité dans la fenêtre, bug #3596 -#: ../src/plugins/webreport/NarrativeWeb.py:8233 -#: ../src/plugins/webreport/NarrativeWeb.py:8242 +#: ../src/plugins/webreport/NarrativeWeb.py:8239 +#: ../src/plugins/webreport/NarrativeWeb.py:8248 msgid "Description for download" msgstr "Description" -#: ../src/plugins/webreport/NarrativeWeb.py:8233 +#: ../src/plugins/webreport/NarrativeWeb.py:8239 msgid "Smith Family Tree" msgstr "Arbre de la famille Martin" -#: ../src/plugins/webreport/NarrativeWeb.py:8234 -#: ../src/plugins/webreport/NarrativeWeb.py:8243 +#: ../src/plugins/webreport/NarrativeWeb.py:8240 +#: ../src/plugins/webreport/NarrativeWeb.py:8249 msgid "Give a description for this file." msgstr "Donnez une description pour ce fichier." -#: ../src/plugins/webreport/NarrativeWeb.py:8242 +#: ../src/plugins/webreport/NarrativeWeb.py:8248 msgid "Johnson Family Tree" msgstr "Arbre de la famille Bernard" -#: ../src/plugins/webreport/NarrativeWeb.py:8252 +#: ../src/plugins/webreport/NarrativeWeb.py:8258 #: ../src/plugins/webreport/WebCal.py:1511 msgid "Advanced Options" msgstr "Options avancées" -#: ../src/plugins/webreport/NarrativeWeb.py:8255 +#: ../src/plugins/webreport/NarrativeWeb.py:8261 #: ../src/plugins/webreport/WebCal.py:1513 msgid "Character set encoding" msgstr "Encodage de caractères" -#: ../src/plugins/webreport/NarrativeWeb.py:8258 +#: ../src/plugins/webreport/NarrativeWeb.py:8264 #: ../src/plugins/webreport/WebCal.py:1516 msgid "The encoding to be used for the web files" msgstr "L'encodage utilisé pour les fichiers internet" # phrase courte, place limitée -#: ../src/plugins/webreport/NarrativeWeb.py:8261 +#: ../src/plugins/webreport/NarrativeWeb.py:8267 msgid "Include link to active person on every page" msgstr "Inclure un lien vers la personne active" # plus de détails dans le tooltip -#: ../src/plugins/webreport/NarrativeWeb.py:8262 +#: ../src/plugins/webreport/NarrativeWeb.py:8268 msgid "Include a link to the active person (if they have a webpage)" msgstr "Inclure un lien vers la personne active sur chaque page" -#: ../src/plugins/webreport/NarrativeWeb.py:8265 +#: ../src/plugins/webreport/NarrativeWeb.py:8271 msgid "Include a column for birth dates on the index pages" msgstr "Inclure une colonne pour les dates de naissance dans les pages index" -#: ../src/plugins/webreport/NarrativeWeb.py:8266 +#: ../src/plugins/webreport/NarrativeWeb.py:8272 msgid "Whether to include a birth column" msgstr "Inclure ou non une colonne naissance" -#: ../src/plugins/webreport/NarrativeWeb.py:8269 +#: ../src/plugins/webreport/NarrativeWeb.py:8275 msgid "Include a column for death dates on the index pages" msgstr "Inclure une colonne pour les dates de décès dans les pages index" -#: ../src/plugins/webreport/NarrativeWeb.py:8270 +#: ../src/plugins/webreport/NarrativeWeb.py:8276 msgid "Whether to include a death column" msgstr "Inclure ou non une colonne décès" -#: ../src/plugins/webreport/NarrativeWeb.py:8273 +#: ../src/plugins/webreport/NarrativeWeb.py:8279 msgid "Include a column for partners on the index pages" msgstr "Inclure une colonne pour les conjoints dans les pages index" -#: ../src/plugins/webreport/NarrativeWeb.py:8275 +#: ../src/plugins/webreport/NarrativeWeb.py:8281 msgid "Whether to include a partners column" msgstr "Inclure ou non une colonne conjoints" -#: ../src/plugins/webreport/NarrativeWeb.py:8278 +#: ../src/plugins/webreport/NarrativeWeb.py:8284 msgid "Include a column for parents on the index pages" msgstr "Inclure une colonne pour les parents dans les pages index" -#: ../src/plugins/webreport/NarrativeWeb.py:8280 +#: ../src/plugins/webreport/NarrativeWeb.py:8286 msgid "Whether to include a parents column" msgstr "Inclure ou non une colonne parents" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:8283 +#: ../src/plugins/webreport/NarrativeWeb.py:8289 msgid "Include half and/ or step-siblings on the individual pages" msgstr "Inclure les demi-frères et demi-sœurs sur la page de l'individu" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:8285 +#: ../src/plugins/webreport/NarrativeWeb.py:8291 msgid "Whether to include half and/ or step-siblings with the parents and siblings" msgstr "Inclure ou non les demi-frères et demi-sœurs avec les parents, frères et sœurs." -#: ../src/plugins/webreport/NarrativeWeb.py:8289 +#: ../src/plugins/webreport/NarrativeWeb.py:8295 msgid "Sort all children in birth order" msgstr "Trier les enfants selon la date de naissance" -#: ../src/plugins/webreport/NarrativeWeb.py:8290 +#: ../src/plugins/webreport/NarrativeWeb.py:8296 msgid "Whether to display children in birth order or in entry order?" msgstr "Affiche les enfants selon leurs dates de naissance ou selon l'ordre actuel ?" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:8293 +#: ../src/plugins/webreport/NarrativeWeb.py:8299 msgid "Include family pages" msgstr "Inclure les pages de la famille" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:8294 +#: ../src/plugins/webreport/NarrativeWeb.py:8300 msgid "Whether or not to include family pages." msgstr "Inclure ou non des pages de la famille." -#: ../src/plugins/webreport/NarrativeWeb.py:8297 +#: ../src/plugins/webreport/NarrativeWeb.py:8303 msgid "Include event pages" msgstr "Inclure les pages événement" -#: ../src/plugins/webreport/NarrativeWeb.py:8298 +#: ../src/plugins/webreport/NarrativeWeb.py:8304 msgid "Add a complete events list and relevant pages or not" msgstr "Ajouter ou non une liste complète des événements et pages liées" -#: ../src/plugins/webreport/NarrativeWeb.py:8301 +#: ../src/plugins/webreport/NarrativeWeb.py:8307 msgid "Include repository pages" msgstr "Inclure les pages dépôt" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:8302 +#: ../src/plugins/webreport/NarrativeWeb.py:8308 msgid "Whether or not to include the Repository Pages." msgstr "Inclure ou non des pages dépôt." -#: ../src/plugins/webreport/NarrativeWeb.py:8305 +#: ../src/plugins/webreport/NarrativeWeb.py:8311 msgid "Include GENDEX file (/gendex.txt)" msgstr "Inclure un fichier GENDEX (gendex.txt)" -#: ../src/plugins/webreport/NarrativeWeb.py:8306 +#: ../src/plugins/webreport/NarrativeWeb.py:8312 msgid "Whether to include a GENDEX file or not" msgstr "Inclure ou non un fichier GENDEX" -#: ../src/plugins/webreport/NarrativeWeb.py:8309 +#: ../src/plugins/webreport/NarrativeWeb.py:8315 msgid "Include address book pages" msgstr "Inclure les pages adresses" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:8310 +#: ../src/plugins/webreport/NarrativeWeb.py:8316 msgid "Whether or not to add Address Book pages,which can include e-mail and website addresses and personal address/ residence events." msgstr "Ajouter ou non les adresses qui peuvent être des adresses de messagerie, des adresses de site internet, des adresses individuelles et des événements résidence." -#: ../src/plugins/webreport/NarrativeWeb.py:8320 +#: ../src/plugins/webreport/NarrativeWeb.py:8326 msgid "Place Map Options" msgstr "Options Carte du lieu" -#: ../src/plugins/webreport/NarrativeWeb.py:8324 +#: ../src/plugins/webreport/NarrativeWeb.py:8330 msgid "Google" msgstr "Google" -#: ../src/plugins/webreport/NarrativeWeb.py:8326 +#: ../src/plugins/webreport/NarrativeWeb.py:8332 msgid "Map Service" msgstr "Service cartographique" -#: ../src/plugins/webreport/NarrativeWeb.py:8329 +#: ../src/plugins/webreport/NarrativeWeb.py:8335 msgid "Choose your choice of map service for creating the Place Map Pages." msgstr "Choisissez votre service cartographique pour la création des pages Carte du lieu." -#: ../src/plugins/webreport/NarrativeWeb.py:8334 +#: ../src/plugins/webreport/NarrativeWeb.py:8340 msgid "Include Place map on Place Pages" msgstr "Inclure une carte dans les pages du lieu" -#: ../src/plugins/webreport/NarrativeWeb.py:8335 +#: ../src/plugins/webreport/NarrativeWeb.py:8341 msgid "Whether to include a place map on the Place Pages, where Latitude/ Longitude are available." msgstr "Inclure ou non une carte du lieu sur la page des lieux, quand Latitude/ Longitude est disponible." # traduction qui tient compte du résultat généré ... -#: ../src/plugins/webreport/NarrativeWeb.py:8340 +#: ../src/plugins/webreport/NarrativeWeb.py:8346 msgid "Include Family Map Pages with all places shown on the map" msgstr "Inclure des liens vers une carte avec tous les lieux familiaux" # traduction qui tient compte du résultat généré ... -#: ../src/plugins/webreport/NarrativeWeb.py:8342 +#: ../src/plugins/webreport/NarrativeWeb.py:8348 msgid "Whether or not to add an individual page map showing all the places on this page. This will allow you to see how your family traveled around the country." msgstr "Ajouter ou non une carte avec tous les lieux familiaux et un lien sur la page de l'individu. Ceci vous permettra de voir votre famille à travers ses lieux." -#: ../src/plugins/webreport/NarrativeWeb.py:8350 +#: ../src/plugins/webreport/NarrativeWeb.py:8356 msgid "Family Links" msgstr "Liens familiaux" # trunk -#: ../src/plugins/webreport/NarrativeWeb.py:8351 +#: ../src/plugins/webreport/NarrativeWeb.py:8357 msgid "Drop" msgstr "Déposer" -#: ../src/plugins/webreport/NarrativeWeb.py:8352 +#: ../src/plugins/webreport/NarrativeWeb.py:8358 msgid "Markers" msgstr "Marqueurs" -#: ../src/plugins/webreport/NarrativeWeb.py:8353 +#: ../src/plugins/webreport/NarrativeWeb.py:8359 msgid "Google/ FamilyMap Option" msgstr "Google/ Option Carte familiale" -#: ../src/plugins/webreport/NarrativeWeb.py:8356 +#: ../src/plugins/webreport/NarrativeWeb.py:8362 msgid "Select which option that you would like to have for the Google Maps Family Map pages..." msgstr "Sélectionnez l'option que vous souhaitez utiliser pour la carte familiale Google Maps..." # trunk #. adding title to hyperlink menu for screen readers and braille writers -#: ../src/plugins/webreport/NarrativeWeb.py:8816 +#: ../src/plugins/webreport/NarrativeWeb.py:8822 #, python-format msgid "Alphabet Menu: %s" msgstr "Menu alphabétique : %s" diff --git a/po/gramps.pot b/po/gramps.pot index c11e519c0..e43e0004d 100644 --- a/po/gramps.pot +++ b/po/gramps.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-04-01 16:14+0200\n" +"POT-Creation-Date: 2015-04-28 20:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3894,7 +3894,7 @@ msgstr "" #: ../src/plugins/docgen/SvgDrawDoc.py:81 #: ../src/plugins/export/ExportCsv.py:303 #: ../src/plugins/export/ExportCsv.py:307 -#: ../src/plugins/export/ExportGedcom.py:1451 +#: ../src/plugins/export/ExportGedcom.py:1457 #: ../src/plugins/export/ExportGeneWeb.py:97 #: ../src/plugins/export/ExportGeneWeb.py:101 #: ../src/plugins/export/ExportVCalendar.py:104 @@ -6210,11 +6210,11 @@ msgstr "" msgid "F_ull Screen" msgstr "" -#: ../src/gui/viewmanager.py:612 ../src/gui/viewmanager.py:1194 +#: ../src/gui/viewmanager.py:612 ../src/gui/viewmanager.py:1197 msgid "_Undo" msgstr "" -#: ../src/gui/viewmanager.py:617 ../src/gui/viewmanager.py:1211 +#: ../src/gui/viewmanager.py:617 ../src/gui/viewmanager.py:1214 msgid "_Redo" msgstr "" @@ -6273,41 +6273,41 @@ msgid "" "the session exceeded the limit." msgstr "" -#: ../src/gui/viewmanager.py:973 +#: ../src/gui/viewmanager.py:976 msgid "View failed to load. Check error output." msgstr "" -#: ../src/gui/viewmanager.py:1112 +#: ../src/gui/viewmanager.py:1115 msgid "Import Statistics" msgstr "" -#: ../src/gui/viewmanager.py:1163 +#: ../src/gui/viewmanager.py:1166 msgid "Read Only" msgstr "" -#: ../src/gui/viewmanager.py:1246 +#: ../src/gui/viewmanager.py:1249 msgid "Gramps XML Backup" msgstr "" -#: ../src/gui/viewmanager.py:1256 +#: ../src/gui/viewmanager.py:1259 #: ../src/Filters/Rules/MediaObject/_HasMedia.py:49 #: ../src/glade/mergemedia.glade.h:6 msgid "Path:" msgstr "" -#: ../src/gui/viewmanager.py:1276 ../src/plugins/tool/phpgedview.glade.h:5 +#: ../src/gui/viewmanager.py:1279 ../src/plugins/tool/phpgedview.glade.h:5 #: ../src/plugins/import/importgedcom.glade.h:7 msgid "File:" msgstr "" -#: ../src/gui/viewmanager.py:1308 +#: ../src/gui/viewmanager.py:1311 msgid "Media:" msgstr "" #. ################# #. What to include #. ######################### -#: ../src/gui/viewmanager.py:1313 +#: ../src/gui/viewmanager.py:1316 #: ../src/plugins/drawreport/AncestorTree.py:989 #: ../src/plugins/drawreport/DescendTree.py:1585 #: ../src/plugins/textreport/DetAncestralReport.py:803 @@ -6318,54 +6318,54 @@ msgstr "" msgid "Include" msgstr "" -#: ../src/gui/viewmanager.py:1314 ../src/plugins/gramplet/StatsGramplet.py:200 +#: ../src/gui/viewmanager.py:1317 ../src/plugins/gramplet/StatsGramplet.py:200 msgid "Megabyte|MB" msgstr "" -#: ../src/gui/viewmanager.py:1315 +#: ../src/gui/viewmanager.py:1318 #: ../src/plugins/webreport/NarrativeWeb.py:8201 msgid "Exclude" msgstr "" -#: ../src/gui/viewmanager.py:1332 +#: ../src/gui/viewmanager.py:1335 msgid "Backup file already exists! Overwrite?" msgstr "" -#: ../src/gui/viewmanager.py:1333 +#: ../src/gui/viewmanager.py:1336 #, python-format msgid "The file '%s' exists." msgstr "" -#: ../src/gui/viewmanager.py:1334 +#: ../src/gui/viewmanager.py:1337 msgid "Proceed and overwrite" msgstr "" -#: ../src/gui/viewmanager.py:1335 +#: ../src/gui/viewmanager.py:1338 msgid "Cancel the backup" msgstr "" -#: ../src/gui/viewmanager.py:1342 +#: ../src/gui/viewmanager.py:1345 msgid "Making backup..." msgstr "" -#: ../src/gui/viewmanager.py:1359 +#: ../src/gui/viewmanager.py:1362 #, python-format msgid "Backup saved to '%s'" msgstr "" -#: ../src/gui/viewmanager.py:1362 +#: ../src/gui/viewmanager.py:1365 msgid "Backup aborted" msgstr "" -#: ../src/gui/viewmanager.py:1380 +#: ../src/gui/viewmanager.py:1383 msgid "Select backup directory" msgstr "" -#: ../src/gui/viewmanager.py:1646 +#: ../src/gui/viewmanager.py:1649 msgid "Failed Loading Plugin" msgstr "" -#: ../src/gui/viewmanager.py:1647 +#: ../src/gui/viewmanager.py:1650 #, python-format msgid "" "The plugin %(name)s did not load and reported an error.\n" @@ -6380,11 +6380,11 @@ msgid "" "by using the Plugin Manager on the Help menu." msgstr "" -#: ../src/gui/viewmanager.py:1695 +#: ../src/gui/viewmanager.py:1698 msgid "Failed Loading View" msgstr "" -#: ../src/gui/viewmanager.py:1696 +#: ../src/gui/viewmanager.py:1699 #, python-format msgid "" "The view %(name)s did not load and reported an error.\n" @@ -11428,23 +11428,23 @@ msgstr "" msgid "Writing individuals" msgstr "" -#: ../src/plugins/export/ExportGedcom.py:741 +#: ../src/plugins/export/ExportGedcom.py:747 msgid "Writing families" msgstr "" -#: ../src/plugins/export/ExportGedcom.py:901 +#: ../src/plugins/export/ExportGedcom.py:907 msgid "Writing sources" msgstr "" -#: ../src/plugins/export/ExportGedcom.py:936 +#: ../src/plugins/export/ExportGedcom.py:942 msgid "Writing notes" msgstr "" -#: ../src/plugins/export/ExportGedcom.py:974 +#: ../src/plugins/export/ExportGedcom.py:980 msgid "Writing repositories" msgstr "" -#: ../src/plugins/export/ExportGedcom.py:1454 +#: ../src/plugins/export/ExportGedcom.py:1460 msgid "Export failed" msgstr "" @@ -14488,59 +14488,59 @@ msgid "" " Writing to %(filename)s in format %(impliedext)s." msgstr "" -#: ../src/plugins/lib/libgedcom.py:1745 +#: ../src/plugins/lib/libgedcom.py:1749 msgid "Your GEDCOM file is corrupted. It appears to have been truncated." msgstr "" -#: ../src/plugins/lib/libgedcom.py:1828 +#: ../src/plugins/lib/libgedcom.py:1832 #, python-format msgid "Import from GEDCOM (%s)" msgstr "" -#: ../src/plugins/lib/libgedcom.py:2613 ../src/plugins/lib/libgedcom.py:3001 +#: ../src/plugins/lib/libgedcom.py:2617 ../src/plugins/lib/libgedcom.py:3005 msgid "GEDCOM import" msgstr "" -#: ../src/plugins/lib/libgedcom.py:2636 +#: ../src/plugins/lib/libgedcom.py:2640 msgid "GEDCOM import report: No errors detected" msgstr "" -#: ../src/plugins/lib/libgedcom.py:2638 +#: ../src/plugins/lib/libgedcom.py:2642 #, python-format msgid "GEDCOM import report: %s errors detected" msgstr "" -#: ../src/plugins/lib/libgedcom.py:2922 +#: ../src/plugins/lib/libgedcom.py:2926 msgid "Tag recognised but not supported" msgstr "" -#: ../src/plugins/lib/libgedcom.py:2933 +#: ../src/plugins/lib/libgedcom.py:2937 msgid "Line ignored as not understood" msgstr "" -#: ../src/plugins/lib/libgedcom.py:2958 +#: ../src/plugins/lib/libgedcom.py:2962 msgid "Skipped subordinate line" msgstr "" -#: ../src/plugins/lib/libgedcom.py:2992 +#: ../src/plugins/lib/libgedcom.py:2996 msgid "Records not imported into " msgstr "" -#: ../src/plugins/lib/libgedcom.py:3027 +#: ../src/plugins/lib/libgedcom.py:3031 #, python-format msgid "" "Error: %(msg)s '%(gramps_id)s' (input as @%(xref)s@) not in input GEDCOM. " "Record synthesised" msgstr "" -#: ../src/plugins/lib/libgedcom.py:3036 +#: ../src/plugins/lib/libgedcom.py:3040 #, python-format msgid "" "Error: %(msg)s '%(gramps_id)s' (input as @%(xref)s@) not in input GEDCOM. " "Record with typifying attribute 'Unknown' created" msgstr "" -#: ../src/plugins/lib/libgedcom.py:3075 +#: ../src/plugins/lib/libgedcom.py:3079 #, python-format msgid "" "Error: family '%(family)s' (input as @%(orig_family)s@) person %(person)s " @@ -14548,7 +14548,7 @@ msgid "" "reference removed from person" msgstr "" -#: ../src/plugins/lib/libgedcom.py:3153 +#: ../src/plugins/lib/libgedcom.py:3157 #, python-format msgid "" "\n" @@ -14562,268 +14562,273 @@ msgstr "" #. message means that the element %s was ignored, but #. expressed the wrong way round because the message is #. truncated for output -#: ../src/plugins/lib/libgedcom.py:3221 +#: ../src/plugins/lib/libgedcom.py:3225 #, python-format msgid "ADDR element ignored '%s'" msgstr "" -#: ../src/plugins/lib/libgedcom.py:3234 +#: ../src/plugins/lib/libgedcom.py:3238 msgid "TRLR (trailer)" msgstr "" -#: ../src/plugins/lib/libgedcom.py:3263 +#: ../src/plugins/lib/libgedcom.py:3268 #, python-format msgid "SUBM (Submitter): @%s@" msgstr "" -#: ../src/plugins/lib/libgedcom.py:3287 ../src/plugins/lib/libgedcom.py:6863 +#: ../src/plugins/lib/libgedcom.py:3270 +#, python-format +msgid "SUBM (Submitter): %s" +msgstr "" + +#: ../src/plugins/lib/libgedcom.py:3294 ../src/plugins/lib/libgedcom.py:6870 msgid "GEDCOM data" msgstr "" -#: ../src/plugins/lib/libgedcom.py:3333 +#: ../src/plugins/lib/libgedcom.py:3340 msgid "Unknown tag" msgstr "" -#: ../src/plugins/lib/libgedcom.py:3335 ../src/plugins/lib/libgedcom.py:3349 -#: ../src/plugins/lib/libgedcom.py:3353 ../src/plugins/lib/libgedcom.py:3374 +#: ../src/plugins/lib/libgedcom.py:3342 ../src/plugins/lib/libgedcom.py:3356 +#: ../src/plugins/lib/libgedcom.py:3360 ../src/plugins/lib/libgedcom.py:3381 msgid "Top Level" msgstr "" -#: ../src/plugins/lib/libgedcom.py:3443 +#: ../src/plugins/lib/libgedcom.py:3450 #, python-format msgid "INDI (individual) Gramps ID %s" msgstr "" -#: ../src/plugins/lib/libgedcom.py:3560 +#: ../src/plugins/lib/libgedcom.py:3567 msgid "Empty Alias ignored" msgstr "" -#: ../src/plugins/lib/libgedcom.py:3640 ../src/plugins/lib/libgedcom.py:4947 -#: ../src/plugins/lib/libgedcom.py:5175 ../src/plugins/lib/libgedcom.py:5342 -#: ../src/plugins/lib/libgedcom.py:6017 ../src/plugins/lib/libgedcom.py:6161 +#: ../src/plugins/lib/libgedcom.py:3647 ../src/plugins/lib/libgedcom.py:4954 +#: ../src/plugins/lib/libgedcom.py:5182 ../src/plugins/lib/libgedcom.py:5349 +#: ../src/plugins/lib/libgedcom.py:6024 ../src/plugins/lib/libgedcom.py:6168 msgid "Filename omitted" msgstr "" -#: ../src/plugins/lib/libgedcom.py:3642 ../src/plugins/lib/libgedcom.py:4949 -#: ../src/plugins/lib/libgedcom.py:5177 ../src/plugins/lib/libgedcom.py:5344 -#: ../src/plugins/lib/libgedcom.py:6019 ../src/plugins/lib/libgedcom.py:6163 +#: ../src/plugins/lib/libgedcom.py:3649 ../src/plugins/lib/libgedcom.py:4956 +#: ../src/plugins/lib/libgedcom.py:5184 ../src/plugins/lib/libgedcom.py:5351 +#: ../src/plugins/lib/libgedcom.py:6026 ../src/plugins/lib/libgedcom.py:6170 msgid "Form omitted" msgstr "" -#: ../src/plugins/lib/libgedcom.py:4713 +#: ../src/plugins/lib/libgedcom.py:4720 #, python-format msgid "FAM (family) Gramps ID %s" msgstr "" -#: ../src/plugins/lib/libgedcom.py:5091 ../src/plugins/lib/libgedcom.py:7134 -#: ../src/plugins/lib/libgedcom.py:7171 +#: ../src/plugins/lib/libgedcom.py:5098 ../src/plugins/lib/libgedcom.py:7141 +#: ../src/plugins/lib/libgedcom.py:7178 msgid "Empty note ignored" msgstr "" #. We have previously found a PLAC -#: ../src/plugins/lib/libgedcom.py:5250 +#: ../src/plugins/lib/libgedcom.py:5257 msgid "A second PLAC ignored" msgstr "" #. We have perviously found an ADDR, or have populated location #. from PLAC title -#: ../src/plugins/lib/libgedcom.py:5432 +#: ../src/plugins/lib/libgedcom.py:5439 msgid "Location already populated; ADDR ignored" msgstr "" #. empty: discard, with warning and skip subs #. Note: level+2 -#: ../src/plugins/lib/libgedcom.py:5536 +#: ../src/plugins/lib/libgedcom.py:5543 msgid "Empty event note ignored" msgstr "" -#: ../src/plugins/lib/libgedcom.py:5854 ../src/plugins/lib/libgedcom.py:6656 +#: ../src/plugins/lib/libgedcom.py:5861 ../src/plugins/lib/libgedcom.py:6663 msgid "Warn: ADDR overwritten" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6031 ../src/plugins/lib/libgedcom.py:6453 +#: ../src/plugins/lib/libgedcom.py:6038 ../src/plugins/lib/libgedcom.py:6460 msgid "REFN ignored" msgstr "" #. SOURce with the given gramps_id had no title -#: ../src/plugins/lib/libgedcom.py:6124 +#: ../src/plugins/lib/libgedcom.py:6131 #, python-format msgid "No title - ID %s" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6129 +#: ../src/plugins/lib/libgedcom.py:6136 #, python-format msgid "SOUR (source) Gramps ID %s" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6379 +#: ../src/plugins/lib/libgedcom.py:6386 #, python-format msgid "OBJE (multi-media object) Gramps ID %s" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6407 ../src/plugins/lib/libgedcom.py:7356 +#: ../src/plugins/lib/libgedcom.py:6414 ../src/plugins/lib/libgedcom.py:7364 #, python-format msgid "Could not import %s" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6443 +#: ../src/plugins/lib/libgedcom.py:6450 msgid "BLOB ignored" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6463 +#: ../src/plugins/lib/libgedcom.py:6470 msgid "Multimedia REFN:TYPE ignored" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6473 +#: ../src/plugins/lib/libgedcom.py:6480 msgid "Mutimedia RIN ignored" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6560 +#: ../src/plugins/lib/libgedcom.py:6567 #, python-format msgid "REPO (repository) Gramps ID %s" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6791 +#: ../src/plugins/lib/libgedcom.py:6798 msgid "Head (header)" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6807 +#: ../src/plugins/lib/libgedcom.py:6814 msgid "Approved system identification" msgstr "" #. feature request 2356: avoid genitive form -#: ../src/plugins/lib/libgedcom.py:6817 +#: ../src/plugins/lib/libgedcom.py:6824 msgid "Generated by" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6831 +#: ../src/plugins/lib/libgedcom.py:6838 msgid "Name of software product" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6843 +#: ../src/plugins/lib/libgedcom.py:6850 msgid "Version number of software product" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6860 +#: ../src/plugins/lib/libgedcom.py:6867 #, python-format msgid "Business that produced the product: %s" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6881 +#: ../src/plugins/lib/libgedcom.py:6888 msgid "Name of source data" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6895 +#: ../src/plugins/lib/libgedcom.py:6902 msgid "Copyright of source data" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6909 +#: ../src/plugins/lib/libgedcom.py:6916 msgid "Publication date of source data" msgstr "" #. feature request 2356: avoid genitive form -#: ../src/plugins/lib/libgedcom.py:6922 +#: ../src/plugins/lib/libgedcom.py:6929 #, python-format msgid "Import from %s" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6960 +#: ../src/plugins/lib/libgedcom.py:6967 msgid "Submission record identifier" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6971 +#: ../src/plugins/lib/libgedcom.py:6978 msgid "Language of GEDCOM text" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6995 +#: ../src/plugins/lib/libgedcom.py:7002 #, python-format msgid "" "Import of GEDCOM file %s with DEST=%s, could cause errors in the resulting " "database!" msgstr "" -#: ../src/plugins/lib/libgedcom.py:6998 +#: ../src/plugins/lib/libgedcom.py:7005 msgid "Look for nameless events." msgstr "" -#: ../src/plugins/lib/libgedcom.py:7021 +#: ../src/plugins/lib/libgedcom.py:7028 msgid "Character set" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7023 +#: ../src/plugins/lib/libgedcom.py:7030 msgid "Character set and version" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7039 +#: ../src/plugins/lib/libgedcom.py:7046 msgid "GEDCOM version not supported" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7042 +#: ../src/plugins/lib/libgedcom.py:7049 msgid "GEDCOM version" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7045 +#: ../src/plugins/lib/libgedcom.py:7052 msgid "GEDCOM form not supported" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7047 +#: ../src/plugins/lib/libgedcom.py:7054 msgid "GEDCOM form" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7093 +#: ../src/plugins/lib/libgedcom.py:7100 msgid "Creation date of GEDCOM" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7097 +#: ../src/plugins/lib/libgedcom.py:7104 msgid "Creation date and time of GEDCOM" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7186 +#: ../src/plugins/lib/libgedcom.py:7193 #, python-format msgid "NOTE Gramps ID %s" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7236 +#: ../src/plugins/lib/libgedcom.py:7243 msgid "Submission: Submitter" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7238 +#: ../src/plugins/lib/libgedcom.py:7245 msgid "Submission: Family file" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7240 +#: ../src/plugins/lib/libgedcom.py:7247 msgid "Submission: Temple code" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7242 +#: ../src/plugins/lib/libgedcom.py:7249 msgid "Submission: Generations of ancestors" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7244 +#: ../src/plugins/lib/libgedcom.py:7251 msgid "Submission: Generations of descendants" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7246 +#: ../src/plugins/lib/libgedcom.py:7253 msgid "Submission: Ordinance process flag" msgstr "" #. # Okay we have no clue which temple this is. #. # We should tell the user and store it anyway. -#: ../src/plugins/lib/libgedcom.py:7457 +#: ../src/plugins/lib/libgedcom.py:7465 msgid "Invalid temple code" msgstr "" -#: ../src/plugins/lib/libgedcom.py:7549 +#: ../src/plugins/lib/libgedcom.py:7557 msgid "" "Your GEDCOM file is corrupted. The file appears to be encoded using the " "UTF16 character set, but is missing the BOM marker." msgstr "" -#: ../src/plugins/lib/libgedcom.py:7552 +#: ../src/plugins/lib/libgedcom.py:7560 msgid "Your GEDCOM file is empty." msgstr "" -#: ../src/plugins/lib/libgedcom.py:7615 +#: ../src/plugins/lib/libgedcom.py:7623 #, python-format msgid "Invalid line %d in GEDCOM file." msgstr ""