diff -Nru mugshot-0.2.2/data/ui/MugshotWindow.ui mugshot-0.2.3/data/ui/MugshotWindow.ui --- mugshot-0.2.2/data/ui/MugshotWindow.ui 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/data/ui/MugshotWindow.ui 2014-04-02 00:57:55.000000000 +0000 @@ -358,6 +358,7 @@ 4 alpha + diff -Nru mugshot-0.2.2/debian/changelog mugshot-0.2.3/debian/changelog --- mugshot-0.2.2/debian/changelog 2014-03-13 20:40:22.000000000 +0000 +++ mugshot-0.2.3/debian/changelog 2014-04-05 08:18:41.000000000 +0000 @@ -1,3 +1,10 @@ +mugshot (0.2.3-1) unstable; urgency=medium + + * New upstream release. LP: #1302906 + - fix: mugshot is unable to store profile picture (LP: #1298665) + + -- Jackson Doak Sat, 05 Apr 2014 12:41:01 +1100 + mugshot (0.2.2-1) unstable; urgency=medium * New upstream release diff -Nru mugshot-0.2.2/mugshot/CameraMugshotDialog.py mugshot-0.2.3/mugshot/CameraMugshotDialog.py --- mugshot-0.2.2/mugshot/CameraMugshotDialog.py 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/mugshot/CameraMugshotDialog.py 2014-04-02 01:20:16.000000000 +0000 @@ -27,9 +27,9 @@ from gi.repository import GdkX11, GstVideo # lint:ok import cairo -import tempfile import os +from mugshot_lib import helpers from mugshot_lib.CameraDialog import CameraDialog @@ -60,7 +60,7 @@ # Draw the message to the drawing area. ctx.set_source_rgb(*font_color) ctx.select_font_face(font_name, cairo.FONT_SLANT_NORMAL, - cairo.FONT_WEIGHT_NORMAL) + cairo.FONT_WEIGHT_NORMAL) ctx.set_font_size(font_size) for line in split_msg: @@ -104,9 +104,9 @@ if device.startswith('video'): devices.append(device) logger.error(_('Camera failed to load. Devices: %s') % - '; '.join(devices)) + '; '.join(devices)) self.draw_handler = self.video_window.connect('draw', - self.on_failed_draw) + self.on_failed_draw) self.realized = True # Essential widgets @@ -149,7 +149,7 @@ self._set_video_window_id() if not self.realized: logger.error(_("Cannot display camera output." - "Ignoring play command")) + "Ignoring play command")) else: if self.camerabin: self.camerabin.set_state(Gst.State.PLAYING) @@ -237,8 +237,8 @@ if message_name == "prepare-window-handle": imagesink = message.src imagesink.set_property("force-aspect-ratio", True) - imagesink.set_window_handle( - self.video_window.get_window().get_xid()) + imagesink.set_window_handle(self.video_window.get_window() + .get_xid()) def __on_video_window_realized(self, widget, data=None): """Internal signal handler, used to set up the xid for the drawing area @@ -268,9 +268,7 @@ # Record (Capture) action. else: # Create a new temporary file. - tmpfile = tempfile.NamedTemporaryFile(delete=False) - tmpfile.close() - self.filename = tmpfile.name + self.filename = helpers.new_tempfile('camera') # Capture the current image. self.take_picture(self.filename) @@ -348,8 +346,9 @@ # apply: emitted when the apply button has been pressed and there is a # new file saved for use. __gsignals__ = {'image-captured': (GObject.SIGNAL_RUN_LAST, - GObject.TYPE_NONE, - (GObject.TYPE_PYOBJECT,)), - 'apply': (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, - (GObject.TYPE_STRING,)) - } + GObject.TYPE_NONE, + (GObject.TYPE_PYOBJECT,)), + 'apply': (GObject.SIGNAL_RUN_LAST, + GObject.TYPE_NONE, + (GObject.TYPE_STRING,)) + } diff -Nru mugshot-0.2.2/mugshot/__init__.py mugshot-0.2.3/mugshot/__init__.py --- mugshot-0.2.2/mugshot/__init__.py 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/mugshot/__init__.py 2014-04-02 01:21:12.000000000 +0000 @@ -23,7 +23,7 @@ from mugshot import MugshotWindow -from mugshot_lib import set_up_logging, get_version +from mugshot_lib import set_up_logging, get_version, helpers def parse_options(): @@ -45,3 +45,6 @@ window = MugshotWindow.MugshotWindow() window.show() Gtk.main() + + # Cleanup temporary files + helpers.clear_tempfiles() diff -Nru mugshot-0.2.2/mugshot/MugshotWindow.py mugshot-0.2.3/mugshot/MugshotWindow.py --- mugshot-0.2.2/mugshot/MugshotWindow.py 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/mugshot/MugshotWindow.py 2014-04-05 01:19:45.000000000 +0000 @@ -27,19 +27,17 @@ # DBUS interface is used to update pidgin buddyicon when pidgin is running. import dbus -import tempfile - from gi.repository import Gtk, GdkPixbuf, GLib, Gio # pylint: disable=E0611 import logging logger = logging.getLogger('mugshot') -from mugshot_lib import Window, SudoDialog +from mugshot_lib import Window, SudoDialog, helpers from mugshot.CameraMugshotDialog import CameraMugshotDialog username = GLib.get_user_name() home = GLib.get_home_dir() libreoffice_prefs = os.path.join(GLib.get_user_config_dir(), 'libreoffice', - '4', 'user', 'registrymodifications.xcu') + '4', 'user', 'registrymodifications.xcu') pidgin_prefs = os.path.join(home, '.purple', 'prefs.xml') faces_dir = '/usr/share/pixmaps/faces/' @@ -48,7 +46,7 @@ '''Use the system command which to get the absolute path for the given command.''' command = subprocess.Popen(['which', command], - stdout=subprocess.PIPE).stdout.read().strip() + stdout=subprocess.PIPE).stdout.read().strip() command = command.decode('utf-8') if command == '': logger.debug('Command "%s" could not be found.' % command) @@ -60,15 +58,15 @@ """Check for a running process, return True if any listings are found.""" command = 'ps -ef | grep " %s" | grep -v "grep" | wc -l' % name n = subprocess.Popen(command, stdout=subprocess.PIPE, - shell=True).stdout.read().strip() + shell=True).stdout.read().strip() return int(n) > 0 def has_gstreamer_camerabin_support(): """Return True if gstreamer1.0 camerabin element is available.""" process = subprocess.Popen(["gst-inspect-1.0", "camerabin"], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) process.communicate() has_support = process.returncode == 0 if not has_support: @@ -82,8 +80,8 @@ def has_gstreamer_camerasrc_support(): """Return True if gstreamer1.0 v4l2src element is available.""" process = subprocess.Popen(["gst-inspect-1.0", "v4l2src"], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) process.communicate() has_support = process.returncode == 0 if not has_support: @@ -130,7 +128,7 @@ def get_confirmation_dialog(parent, primary_message, secondary_message, - icon_name=None): + icon_name=None): """Display a confirmation (yes/no) dialog configured with primary and secondary messages, as well as a custom icon if requested.""" dialog = Gtk.MessageDialog(transient_for=parent, flags=0, @@ -177,9 +175,11 @@ self.image_menu = builder.get_object('image_menu') self.image_menu.attach_to_widget(self.image_button, detach_cb) self.image_from_camera = builder.get_object('image_from_camera') - image_from_stock = builder.get_object('image_from_stock') - image_from_stock.set_visible(os.path.exists(faces_dir) and - len(os.listdir(faces_dir)) > 0) + self.image_from_stock = builder.get_object('image_from_stock') + self.image_from_stock.set_visible(os.path.exists(faces_dir) and + len(os.listdir(faces_dir)) > 0) + self.menuitem1 = builder.get_object('menuitem1') + self.image_remove = builder.get_object('image_remove') # Entry widgets (chfn) self.first_name_entry = builder.get_object('first_name') @@ -190,6 +190,11 @@ self.email_entry = builder.get_object('email') self.fax_entry = builder.get_object('fax') + # Users without sudo rights cannot change their name. + if not SudoDialog.check_sudo(): + self.first_name_entry.set_sensitive(False) + self.last_name_entry.set_sensitive(False) + # Stock photo browser self.stock_browser = builder.get_object('stock_browser') self.iconview = builder.get_object('stock_iconview') @@ -216,11 +221,22 @@ # Check for .face and set profile image. logger.debug('Checking for ~/.face profile image') face = os.path.join(home, '.face') + logger.debug('Checking AccountsService for profile image') + image = self.accounts_service_get_user_image() + logger.debug('Found profile image: %s' % str(image)) + if os.path.isfile(face): + if os.path.samefile(image, face): + self.updated_image = face + else: + self.updated_image = None self.set_user_image(face) + elif os.path.isfile(image): + self.updated_image = image + self.set_user_image(image) else: + self.updated_image = None self.set_user_image(None) - self.updated_image = None # Search /etc/passwd for the current user's details. logger.debug('Getting user details from /etc/passwd') @@ -231,17 +247,12 @@ name, office, office_phone, home_phone = details.split(',', 3) break - # Expand the user's fullname into first, last, and initials. + # Expand the user's fullname into first and last. try: first_name, last_name = name.split(' ', 1) - initials = first_name[0] + last_name[0] except: first_name = name last_name = '' - if first_name: - initials = first_name[0] - else: - initials = '' # If the variables are defined as 'none', use blank for cleanliness. if home_phone == 'none': @@ -251,8 +262,7 @@ # Get dconf settings logger.debug('Getting initials, email, and fax from dconf') - if self.settings['initials'] != '': - initials = self.settings['initials'] + initials = self.settings['initials'] email = self.settings['email'] fax = self.settings['fax'] @@ -273,7 +283,7 @@ self.email_entry.set_text(email) self.fax_entry.set_text(fax) - # = Mugshot Window ======================================================= # + # = Mugshot Window ====================================================== # def set_user_image(self, filename=None): """Scale and set the user profile image.""" logger.debug("Setting user profile image to %s" % str(filename)) @@ -281,8 +291,25 @@ pixbuf = GdkPixbuf.Pixbuf.new_from_file(filename) scaled = pixbuf.scale_simple(128, 128, GdkPixbuf.InterpType.HYPER) self.user_image.set_from_pixbuf(scaled) + # Show "Remove" menu item. + self.menuitem1.set_visible(True) + self.image_remove.set_visible(True) else: self.user_image.set_from_icon_name('avatar-default', 128) + # Hide "Remove" menu item. + self.menuitem1.set_visible(False) + self.image_remove.set_visible(False) + + def suggest_initials(self, first_name, last_name): + """Generate initials from first and last name.""" + try: + initials = first_name[0] + last_name[0] + except: + if first_name: + initials = first_name[0] + else: + initials = '' + return initials def filter_numbers(self, entry, *args): """Allow only numbers and + in phone entry fields.""" @@ -300,9 +327,10 @@ primary = _("Authentication Failed") secondary = _("User details were not updated.") dialog = Gtk.MessageDialog(transient_for=self, flags=0, - message_type=Gtk.MessageType.WARNING, - buttons=Gtk.ButtonsType.OK, - text=primary) + message_type= + Gtk.MessageType.WARNING, + buttons=Gtk.ButtonsType.OK, + text=primary) dialog.format_secondary_text(secondary) dialog.run() dialog.destroy() @@ -331,20 +359,29 @@ vbox = widget.get_parent().get_parent().get_parent().get_parent() vbox.child_focus(Gtk.DirectionType.TAB_FORWARD) + def initials_entry_focused(self, widget): + """Paste initials into empty field.""" + logger.debug('Initials field focused.') + first_name = get_entry_value(self.first_name_entry) + last_name = get_entry_value(self.last_name_entry) + if get_entry_value(self.initials_entry) == '': + self.initials_entry.set_text(self.suggest_initials(first_name, + last_name)) + def on_cancel_button_clicked(self, widget): """When the window cancel button is clicked, close the program.""" logger.debug('Cancel clicked, goodbye.') self.destroy() - # = Image Button and Menu ================================================ # + # = Image Button and Menu =============================================== # def on_image_button_clicked(self, widget): """When the menu button is clicked, display the photo menu.""" if widget.get_active(): logger.debug('Show photo menu') self.image_from_camera.set_visible(get_has_camera_support()) self.image_menu.popup(None, None, menu_position, - self.image_menu, 3, - Gtk.get_current_event_time()) + self.image_menu, 3, + Gtk.get_current_event_time()) def on_image_menu_hide(self, widget): """Untoggle the image button when the menu is hidden.""" @@ -367,46 +404,84 @@ logger.debug('Photo not updated, not saving changes.') return False + if not os.path.isfile(self.updated_image): + self.updated_image = "" + face = os.path.join(home, '.face') - # If the .face file already exists, remove it first. - logger.debug('Photo updated, saving changes.') - if os.path.isfile(face): - os.remove(face) + if os.path.normpath(face) != os.path.normpath(self.updated_image): + # If the .face file already exists, remove it first. + logger.debug('Photo updated, saving ~/.face profile image.') + if os.path.isfile(face): + os.remove(face) + # Copy the new file to ~/.face + if os.path.isfile(self.updated_image): + shutil.copyfile(self.updated_image, face) + + # Update AccountsService profile image + logger.debug('Photo updated, saving AccountsService profile image.') + self.accounts_service_set_user_image(self.updated_image) + + # Update Pidgin buddy icon + self.set_pidgin_buddyicon(self.updated_image) - # Copy the new file to ~/.face - if os.path.isfile(self.updated_image): - shutil.copyfile(self.updated_image, face) - else: - face = "" - self.accounts_service_set_user_image(face) - self.set_pidgin_buddyicon(face) self.updated_image = None return True - def accounts_service_set_user_image(self, filename): - """Set user profile image using AccountsService.""" + def accounts_service_get_user_image(self): + """Get user profile image using AccountsService.""" bus = Gio.bus_get_sync(Gio.BusType.SYSTEM, None) result = bus.call_sync('org.freedesktop.Accounts', - '/org/freedesktop/Accounts', - 'org.freedesktop.Accounts', - 'FindUserByName', - GLib.Variant('(s)', (username,)), - GLib.VariantType.new('(o)'), - Gio.DBusCallFlags.NONE, - -1, - None) + '/org/freedesktop/Accounts', + 'org.freedesktop.Accounts', + 'FindUserByName', + GLib.Variant('(s)', (username,)), + GLib.VariantType.new('(o)'), + Gio.DBusCallFlags.NONE, + -1, + None) (path,) = result.unpack() - bus.call_sync('org.freedesktop.Accounts', + result = bus.call_sync('org.freedesktop.Accounts', path, - 'org.freedesktop.Accounts.User', - 'SetIconFile', - GLib.Variant('(s)', (filename,)), - GLib.VariantType.new('()'), + 'org.freedesktop.DBus.Properties', + 'GetAll', + GLib.Variant('(s)', + ('org.freedesktop.Accounts.User',) + ), + GLib.VariantType.new('(a{sv})'), Gio.DBusCallFlags.NONE, -1, None) + (props,) = result.unpack() + return props['IconFile'] + + def accounts_service_set_user_image(self, filename): + """Set user profile image using AccountsService.""" + try: + bus = Gio.bus_get_sync(Gio.BusType.SYSTEM, None) + result = bus.call_sync('org.freedesktop.Accounts', + '/org/freedesktop/Accounts', + 'org.freedesktop.Accounts', + 'FindUserByName', + GLib.Variant('(s)', (username,)), + GLib.VariantType.new('(o)'), + Gio.DBusCallFlags.NONE, + -1, + None) + (path,) = result.unpack() + + bus.call_sync('org.freedesktop.Accounts', + path, + 'org.freedesktop.Accounts.User', + 'SetIconFile', + GLib.Variant('(s)', (filename,)), + GLib.VariantType.new('()'), + Gio.DBusCallFlags.NONE, + -1, + None) + except GLib.GError: + pass def set_pidgin_buddyicon(self, filename=None): """Sets the pidgin buddyicon to filename (usually ~/.face). @@ -417,10 +492,10 @@ logger.debug('Pidgin not installed or never opened, not updating.') return logger.debug('Prompting user to update pidgin buddy icon') - update_pidgin = get_confirmation_dialog(self, - _("Update Pidgin buddy icon?"), - _("Would you also like to update your Pidgin buddy icon?"), - 'pidgin') + primary = _("Update Pidgin buddy icon?") + secondary = _("Would you also like to update your Pidgin buddy icon?") + update_pidgin = get_confirmation_dialog(self, primary, secondary, + 'pidgin') if update_pidgin: if has_running_process('pidgin'): self.set_pidgin_buddyicon_dbus(filename) @@ -467,14 +542,21 @@ def get_chfn_details_updated(self): """Return True if chfn-related details have been modified.""" logger.debug('Checking if chfn details have been modified.') - if self.first_name != self.first_name_entry.get_text().strip() or \ - self.last_name != self.last_name_entry.get_text().strip() or \ - self.home_phone != self.home_phone_entry.get_text().strip() or \ - self.office_phone != self.office_phone_entry.get_text().strip(): + modified = False + if self.first_name != self.first_name_entry.get_text().strip(): + modified = True + if self.last_name != self.last_name_entry.get_text().strip(): + modified = True + if self.home_phone != self.home_phone_entry.get_text().strip(): + modified = True + if self.office_phone != self.office_phone_entry.get_text().strip(): + modified = True + if modified: logger.debug('chfn details have been modified.') return True - logger.debug('chfn details have NOT been modified.') - return False + else: + logger.debug('chfn details have NOT been modified.') + return False def save_chfn_details(self): """Commit changes to chfn-related details. For full name, changes must @@ -518,28 +600,31 @@ home_phone = 'none' # Full name can only be modified by root. Try using sudo to modify. - logger.debug('Attempting to set fullname with sudo chfn') - # Force the C language for guaranteed english strings in the script. - child = pexpect.spawn('%s %s %s' % (sudo, chfn, username), - env={"LANG": "C"}) - child.timeout = 5 - try: - child.expect([".*ssword.*", pexpect.EOF]) - child.sendline(password) - child.expect(".*ame.*:") - child.sendline(full_name) - for i in range(5): - child.sendline('') - except pexpect.TIMEOUT: - # Password was incorrect, or sudo rights not granted - logger.warning('Timeout reached, password was incorrect or sudo ' - 'rights not granted.') - pass - child.close() - if child.exitstatus == 0: - self.first_name = first_name - self.last_name = last_name - return_codes.append(child.exitstatus) + if SudoDialog.check_sudo(): + logger.debug('Attempting to set fullname with sudo chfn') + # Force the C language for guaranteed english strings in the script. + child = pexpect.spawn('%s %s %s' % (sudo, chfn, username), + env={"LANG": "C"}) + child.timeout = 5 + try: + child.expect([".*ssword.*", pexpect.EOF]) + child.sendline(password) + child.expect(".*ame.*:") + child.sendline(full_name) + for i in range(5): + child.sendline('') + except pexpect.TIMEOUT: + # Password was incorrect, or sudo rights not granted + logger.warning('Timeout reached, password was incorrect or ' + 'sudo rights not granted.') + pass + child.close() + if child.exitstatus == 0: + self.first_name = first_name + self.last_name = last_name + return_codes.append(child.exitstatus) + else: + return_codes.append(0) logger.debug('Attempting to set user details with chfn') child = pexpect.spawn(chfn, env={"LANG": "C"}) @@ -563,7 +648,7 @@ return_codes.append(child.exitstatus) return return_codes - # = LibreOffice ========================================================== # + # = LibreOffice ========================================================= # def get_libreoffice_details_updated(self): """Return True if LibreOffice settings need to be updated.""" # Return False if there is no preferences file. @@ -591,8 +676,8 @@ return False def get_libreoffice_data(self): - """Get each of the preferences from the LibreOffice registymodifications - preferences file. + """Get each of the preferences from the LibreOffice + registymodifications preferences file. Return a dict with the details.""" prefs_file = libreoffice_prefs @@ -637,11 +722,12 @@ prefs_file = libreoffice_prefs if os.path.isfile(prefs_file): logger.debug('Prompting user to update LibreOffice details.') - update_libreoffice = get_confirmation_dialog(self, - _("Update LibreOffice user details?"), - _("Would you also like to update your user " - "details in LibreOffice?"), - 'libreoffice-startcenter') + update_libreoffice = \ + get_confirmation_dialog(self, + _("Update LibreOffice user details?"), + _("Would you also like to update your " + "user details in LibreOffice?"), + 'libreoffice-startcenter') if update_libreoffice: logger.debug('Confirm: Updating details.') first_name = get_entry_value(self.first_name_entry) @@ -711,43 +797,43 @@ if not first_name_updated: string = \ - '' + '' '' '%s\n' % first_name open_prefs.write(string) if not last_name_updated: string = \ - '' + '' '' '%s\n' % last_name open_prefs.write(string) if not initials_updated: string = \ - '' + '' '' '%s\n' % initials open_prefs.write(string) if not email_updated: string = \ - '' + '' '' '%s\n' % email open_prefs.write(string) if not home_phone_updated: string = \ - '' + '' '' '%s\n' % home_phone open_prefs.write(string) if not office_phone_updated: string = \ - '' + '' '' '%s\n' % office_phone open_prefs.write(string) if not fax_updated: string = \ - '' + '' '' '%s\n' % fax open_prefs.write(string) @@ -756,7 +842,7 @@ else: logger.debug('Reject: Not updating.') - # = Stock Browser ======================================================== # + # = Stock Browser ======================================================= # def on_image_from_stock_activate(self, widget): """When the 'Select image from stock' menu item is clicked, load and display the stock photo browser.""" @@ -777,14 +863,15 @@ full_path = os.path.join(faces_dir, filename) if os.path.isfile(full_path): pixbuf = GdkPixbuf.Pixbuf.new_from_file(full_path) - scaled = pixbuf.scale_simple(90, 90, GdkPixbuf.InterpType.HYPER) + scaled = pixbuf.scale_simple(90, 90, + GdkPixbuf.InterpType.HYPER) model.append([full_path, scaled]) def on_stock_iconview_selection_changed(self, widget): """Enable stock submission only when an item is selected.""" selected_items = self.iconview.get_selected_items() - self.builder.get_object('stock_ok').set_sensitive( - len(selected_items) > 0) + is_sensitive = len(selected_items) > 0 + self.builder.get_object('stock_ok').set_sensitive(is_sensitive) def on_stock_browser_delete_event(self, widget, event): """Hide the stock browser instead of deleting it.""" @@ -814,20 +901,16 @@ """Allow selecting a stock photo with Enter.""" self.on_stock_ok_clicked(widget) - # = Image Browser ======================================================== # + # = Image Browser ======================================================= # def on_image_from_browse_activate(self, widget): """Browse for a user profile image.""" # Run the dialog, grab the filename if confirmed, then hide the dialog. response = self.chooser.run() if response == Gtk.ResponseType.APPLY: # Update the user image, store the path for committing later. - if self.tmpfile and os.path.isfile(self.tmpfile.name): - os.remove(self.tmpfile.name) - self.tmpfile = tempfile.NamedTemporaryFile(delete=False) - self.tmpfile.close() - self.updated_image = self.tmpfile.name + self.updated_image = helpers.new_tempfile('browse') self.filechooser_preview_pixbuf.savev(self.updated_image, "png", - [], []) + [], []) logger.debug("Selected %s" % self.updated_image) self.set_user_image(self.updated_image) self.chooser.hide() @@ -877,8 +960,9 @@ self.filechooser_preview_pixbuf = \ filechooser_pixbuf.new_subpixbuf(start_x, start_y, width, height) - scaled = self.filechooser_preview_pixbuf.scale_simple(128, 128, - GdkPixbuf.InterpType.HYPER) + scaled = self.filechooser_preview_pixbuf.scale_simple( + 128, 128, + GdkPixbuf.InterpType.HYPER) self.file_chooser_preview.set_from_pixbuf(scaled) def on_crop_changed(self, widget, data=None): diff -Nru mugshot-0.2.2/mugshot_lib/Builder.py mugshot-0.2.3/mugshot_lib/Builder.py --- mugshot-0.2.2/mugshot_lib/Builder.py 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/mugshot_lib/Builder.py 2014-04-02 01:49:18.000000000 +0000 @@ -54,8 +54,7 @@ # pylint: disable=R0201 # this is a method so that a subclass of Builder can redefine it - def default_handler(self, - handler_name, filename, *args, **kwargs): + def default_handler(self, handler_name, filename, *args, **kwargs): '''helps the apprentice guru glade defined handlers that do not exist come here instead. @@ -99,8 +98,8 @@ connections = [ (name, - ele_signal.attrib['name'], - ele_signal.attrib['handler']) for ele_signal in ele_signals] + ele_signal.attrib['name'], + ele_signal.attrib['handler']) for ele_signal in ele_signals] if connections: self.connections.extend(connections) @@ -108,7 +107,7 @@ ele_signals = tree.getiterator("signal") for ele_signal in ele_signals: self.glade_handler_dict.update( - {ele_signal.attrib["handler"]: None}) + {ele_signal.attrib["handler"]: None}) def connect_signals(self, callback_obj): '''connect the handlers defined in glade @@ -130,7 +129,7 @@ # replace the run time warning logger.warn("expected handler '%s' in %s", - item[0], filename) + item[0], filename) # connect glade define handlers Gtk.Builder.connect_signals(self, connection_dict) @@ -139,7 +138,7 @@ for connection in self.connections: widget_name, signal_name, handler_name = connection logger.debug("connect builder by design '%s', '%s', '%s'", - widget_name, signal_name, handler_name) + widget_name, signal_name, handler_name) def get_ui(self, callback_obj=None, by_name=True): '''Creates the ui object with widgets as attributes @@ -203,7 +202,7 @@ pyname = '' for character in name: if (character.isalpha() or character == '_' or - (pyname and character.isdigit())): + (pyname and character.isdigit())): pyname += character else: pyname += '_' @@ -288,13 +287,13 @@ handler_names.append("on_%s" % sig) do_connect(item, sig, handler_names, - callback_handler_dict, builder.connections) + callback_handler_dict, builder.connections) log_unconnected_functions(callback_handler_dict, builder.connections) def do_connect(item, signal_name, handler_names, - callback_handler_dict, connections): + callback_handler_dict, connections): '''connect this signal to an unused handler''' widget_name, widget = item @@ -307,7 +306,7 @@ connections.append(connection) logger.debug("connect builder by name '%s','%s', '%s'", - widget_name, signal_name, handler_name) + widget_name, signal_name, handler_name) def log_unconnected_functions(callback_handler_dict, connections): diff -Nru mugshot-0.2.2/mugshot_lib/helpers.py mugshot-0.2.3/mugshot_lib/helpers.py --- mugshot-0.2.2/mugshot_lib/helpers.py 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/mugshot_lib/helpers.py 2014-04-02 01:50:29.000000000 +0000 @@ -19,6 +19,8 @@ import logging import os +import tempfile + from . mugshotconfig import get_data_file from . Builder import Builder @@ -65,7 +67,7 @@ root.addHandler(null_handler) formatter = logging.Formatter("%(levelname)s:%(name)s:" - " %(funcName)s() '%(message)s'") + " %(funcName)s() '%(message)s'") logger = logging.getLogger('mugshot') logger_sh = logging.StreamHandler() @@ -101,3 +103,39 @@ function.aliases.append(alternative_function_name) return function return decorator + + +# = Temporary File Management ============================================ # +temporary_files = {} + + +def new_tempfile(identifier): + """Create a new temporary file, register it, and return the filename.""" + remove_tempfile(identifier) + temporary_file = tempfile.NamedTemporaryFile(delete=False) + temporary_file.close() + filename = temporary_file.name + temporary_files[identifier] = filename + return filename + + +def get_tempfile(identifier): + """Retrieve the specified temporary filename.""" + if identifier in list(temporary_files.keys()): + return temporary_files[identifier] + return None + + +def remove_tempfile(identifier): + """Remove the specified temporary file from the system.""" + if identifier in list(temporary_files.keys()): + filename = temporary_files[identifier] + if os.path.isfile(filename): + os.remove(filename) + temporary_files.pop(identifier) + + +def clear_tempfiles(): + """Remove all temporary files registered to Mugshot.""" + for identifier in list(temporary_files.keys()): + remove_tempfile(identifier) diff -Nru mugshot-0.2.2/mugshot_lib/SudoDialog.py mugshot-0.2.3/mugshot_lib/SudoDialog.py --- mugshot-0.2.2/mugshot_lib/SudoDialog.py 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/mugshot_lib/SudoDialog.py 2014-04-05 01:16:35.000000000 +0000 @@ -23,6 +23,20 @@ import pexpect +def check_sudo(): + """Return True if user has permission to use sudo.""" + child = pexpect.spawn('sudo -v', env={"LANG": "C"}) + child.timeout = 1 + # Check for failure message. + try: + child.expect(["Sorry", pexpect.EOF]) + child.close() + return False + except: + child.close() + return True + + class SudoDialog(Gtk.MessageDialog): ''' Creates a new SudoDialog. This is a replacement for using gksudo which @@ -52,11 +66,11 @@ # initialize the dialog super(SudoDialog, self).__init__(transient_for=parent, - modal=True, - destroy_with_parent=True, - message_type=message_type, - buttons=buttons, - text='') + modal=True, + destroy_with_parent=True, + message_type=message_type, + buttons=buttons, + text='') self.set_dialog_icon(icon) self.connect("show", self.on_show) @@ -94,7 +108,7 @@ # Outer password box for incorrect password label and inner widgets. password_outer = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, - spacing=12) + spacing=12) password_outer.set_orientation(Gtk.Orientation.VERTICAL) # Password error label, only displayed when unsuccessful. self.password_info = Gtk.Label(label="") @@ -103,13 +117,13 @@ # Inner password box for Password: label and password entry. password_box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, - spacing=12) + spacing=12) password_label = Gtk.Label(label=_("Password:")) self.password_entry = Gtk.Entry() self.password_entry.set_visibility(False) self.password_entry.set_activates_default(True) self.password_entry.connect("changed", self.on_password_changed, - ok_button) + ok_button) # Pack all the widgets. password_box.pack_start(password_label, False, False, 0) @@ -179,7 +193,8 @@ then emit the response signal with REJECT. ''' top, bottom, left, right = self.password_alignment.get_padding() - if self.attempt_login(): + # Password cannot be validated without sudo + if (not check_sudo()) or self.attempt_login(): self.password_valid = True # Adjust the dialog for attactiveness. self.password_alignment.set_padding(12, bottom, left, right) diff -Nru mugshot-0.2.2/mugshot_lib/Window.py mugshot-0.2.3/mugshot_lib/Window.py --- mugshot-0.2.2/mugshot_lib/Window.py 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/mugshot_lib/Window.py 2014-04-02 01:52:35.000000000 +0000 @@ -91,4 +91,4 @@ def on_preferences_changed(self, settings, key, data=None): """Log preference updates.""" logger.debug('preference changed: %s = %s' % - (key, str(settings.get_value(key)))) + (key, str(settings.get_value(key)))) diff -Nru mugshot-0.2.2/NEWS mugshot-0.2.3/NEWS --- mugshot-0.2.2/NEWS 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/NEWS 2014-04-05 01:23:54.000000000 +0000 @@ -1,5 +1,21 @@ Mugshot NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +04 Apr 2014, Mugshot 0.2.3 + +- General: + . Check if user has sudo rights, disable first/last name change if not + . Populate the Initials field based on first/last name fields + . Hide "Remove" when there is no profile image set + . Cleanup temporary files when closed + . Package is now 100% PEP8-compliant +- AccountsService: + . Scale images on save to accomodate AccountsService max size + . Use AccountsService profile image if ~/.face does not exist + . Sync AccountsService profile image to ~/.face +- Bugs fixed: + . mugshot is unable to store profile picture (LP: #1298665) + + 09 Mar 2014, Mugshot 0.2.2 - General: diff -Nru mugshot-0.2.2/PKG-INFO mugshot-0.2.3/PKG-INFO --- mugshot-0.2.2/PKG-INFO 2014-03-09 11:58:32.000000000 +0000 +++ mugshot-0.2.3/PKG-INFO 2014-04-05 01:26:28.000000000 +0000 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: mugshot -Version: 0.2.2 +Version: 0.2.3 Summary: lightweight user configuration utility Home-page: https://launchpad.net/mugshot Author: Sean Davis diff -Nru mugshot-0.2.2/po/ca.po mugshot-0.2.3/po/ca.po --- mugshot-0.2.2/po/ca.po 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/po/ca.po 2014-04-05 01:11:17.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: mugshot\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-03-08 23:21-0500\n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" "PO-Revision-Date: 2014-03-03 00:13+0000\n" "Last-Translator: Adolfo Jayme \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-09 06:08+0000\n" -"X-Generator: Launchpad (build 16948)\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" #: ../mugshot.desktop.in.h:1 msgid "About Me" @@ -61,7 +61,7 @@ msgid "Browse…" msgstr "Explora..." -#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:491 +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 msgid "Mugshot" msgstr "Mugshot" @@ -132,33 +132,33 @@ #. Set the record button to retry, and disable it until the capture #. finishes. -#: ../mugshot/CameraMugshotDialog.py:280 +#: ../mugshot/CameraMugshotDialog.py:278 msgid "Retry" msgstr "Reintenta" #. Password was incorrect, complain. -#: ../mugshot/MugshotWindow.py:300 +#: ../mugshot/MugshotWindow.py:328 msgid "Authentication Failed" msgstr "Ha fallat l’autenticació" -#: ../mugshot/MugshotWindow.py:301 +#: ../mugshot/MugshotWindow.py:329 msgid "User details were not updated." msgstr "No s’han actualitzat els detalls de l’usuari." -#: ../mugshot/MugshotWindow.py:421 +#: ../mugshot/MugshotWindow.py:493 msgid "Update Pidgin buddy icon?" msgstr "Actualitzar la icona de l'amic en Pidgin?" -#: ../mugshot/MugshotWindow.py:422 +#: ../mugshot/MugshotWindow.py:494 msgid "Would you also like to update your Pidgin buddy icon?" msgstr "Desitgeu també actualitzar la icona de l'amic en Pidgin?" -#: ../mugshot/MugshotWindow.py:492 +#: ../mugshot/MugshotWindow.py:572 msgid "Enter your password to change user details." msgstr "" "Escriviu la vostra contrasenya per modificar els detalls de l’usuari." -#: ../mugshot/MugshotWindow.py:494 +#: ../mugshot/MugshotWindow.py:574 msgid "" "This is a security measure to prevent unwanted updates\n" "to your personal information." @@ -166,23 +166,23 @@ "Aquesta és una mesura de seguretat per prevenir actualitzacions\n" "no desitjades de la informació personal." -#: ../mugshot/MugshotWindow.py:641 +#: ../mugshot/MugshotWindow.py:725 msgid "Update LibreOffice user details?" msgstr "Actualitzar les dades d'usuari en LibreOffice?" -#: ../mugshot/MugshotWindow.py:642 +#: ../mugshot/MugshotWindow.py:726 msgid "Would you also like to update your user details in LibreOffice?" msgstr "Desitgeu també actualitzar les dades d'usuari en LibreOffice?" -#: ../mugshot_lib/SudoDialog.py:65 +#: ../mugshot_lib/SudoDialog.py:80 msgid "Cancel" msgstr "Cancel·la" -#: ../mugshot_lib/SudoDialog.py:66 +#: ../mugshot_lib/SudoDialog.py:81 msgid "OK" msgstr "D’acord" -#: ../mugshot_lib/SudoDialog.py:79 +#: ../mugshot_lib/SudoDialog.py:94 msgid "" "Enter your password to\n" "perform administrative tasks." @@ -190,7 +190,7 @@ "Escriviu la vostra contrasenya per\n" "fer tasques administratives." -#: ../mugshot_lib/SudoDialog.py:81 +#: ../mugshot_lib/SudoDialog.py:96 #, python-format msgid "" "The application '%s' lets you\n" @@ -199,10 +199,10 @@ "L’aplicació «%s» us permet\n" "modificar parts essencials del sistema." -#: ../mugshot_lib/SudoDialog.py:102 +#: ../mugshot_lib/SudoDialog.py:117 msgid "Incorrect password... try again." msgstr "La contrasenya és incorrecta. Intenteu-ho de nou." -#: ../mugshot_lib/SudoDialog.py:107 +#: ../mugshot_lib/SudoDialog.py:122 msgid "Password:" msgstr "Contrasenya:" diff -Nru mugshot-0.2.2/po/ca@valencia.po mugshot-0.2.3/po/ca@valencia.po --- mugshot-0.2.2/po/ca@valencia.po 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/po/ca@valencia.po 2014-04-05 01:11:17.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: mugshot\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-03-08 23:21-0500\n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" "PO-Revision-Date: 2013-07-22 19:12+0000\n" "Last-Translator: Sergio Baldoví \n" "Language-Team: Catalan (Valencian) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-09 06:08+0000\n" -"X-Generator: Launchpad (build 16948)\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" #: ../mugshot.desktop.in.h:1 msgid "About Me" @@ -61,7 +61,7 @@ msgid "Browse…" msgstr "Explora..." -#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:491 +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 msgid "Mugshot" msgstr "Mugshot" @@ -130,32 +130,32 @@ #. Set the record button to retry, and disable it until the capture #. finishes. -#: ../mugshot/CameraMugshotDialog.py:280 +#: ../mugshot/CameraMugshotDialog.py:278 msgid "Retry" msgstr "Reintenta" #. Password was incorrect, complain. -#: ../mugshot/MugshotWindow.py:300 +#: ../mugshot/MugshotWindow.py:328 msgid "Authentication Failed" msgstr "" -#: ../mugshot/MugshotWindow.py:301 +#: ../mugshot/MugshotWindow.py:329 msgid "User details were not updated." msgstr "" -#: ../mugshot/MugshotWindow.py:421 +#: ../mugshot/MugshotWindow.py:493 msgid "Update Pidgin buddy icon?" msgstr "Actualitzar la icona de l'amic en Pidgin?" -#: ../mugshot/MugshotWindow.py:422 +#: ../mugshot/MugshotWindow.py:494 msgid "Would you also like to update your Pidgin buddy icon?" msgstr "Desitgeu també actualitzar la icona de l'amic en Pidgin?" -#: ../mugshot/MugshotWindow.py:492 +#: ../mugshot/MugshotWindow.py:572 msgid "Enter your password to change user details." msgstr "" -#: ../mugshot/MugshotWindow.py:494 +#: ../mugshot/MugshotWindow.py:574 msgid "" "This is a security measure to prevent unwanted updates\n" "to your personal information." @@ -163,39 +163,39 @@ "Esta és una mesura de seguretat per a previndre actualitzacions\n" "no desitjades de la informació personal." -#: ../mugshot/MugshotWindow.py:641 +#: ../mugshot/MugshotWindow.py:725 msgid "Update LibreOffice user details?" msgstr "Actualitzar les dades d'usuari en LibreOffice?" -#: ../mugshot/MugshotWindow.py:642 +#: ../mugshot/MugshotWindow.py:726 msgid "Would you also like to update your user details in LibreOffice?" msgstr "Desitgeu també actualitzar les dades d'usuari en LibreOffice?" -#: ../mugshot_lib/SudoDialog.py:65 +#: ../mugshot_lib/SudoDialog.py:80 msgid "Cancel" msgstr "" -#: ../mugshot_lib/SudoDialog.py:66 +#: ../mugshot_lib/SudoDialog.py:81 msgid "OK" msgstr "" -#: ../mugshot_lib/SudoDialog.py:79 +#: ../mugshot_lib/SudoDialog.py:94 msgid "" "Enter your password to\n" "perform administrative tasks." msgstr "" -#: ../mugshot_lib/SudoDialog.py:81 +#: ../mugshot_lib/SudoDialog.py:96 #, python-format msgid "" "The application '%s' lets you\n" "modify essential parts of your system." msgstr "" -#: ../mugshot_lib/SudoDialog.py:102 +#: ../mugshot_lib/SudoDialog.py:117 msgid "Incorrect password... try again." msgstr "" -#: ../mugshot_lib/SudoDialog.py:107 +#: ../mugshot_lib/SudoDialog.py:122 msgid "Password:" msgstr "Contrasenya:" diff -Nru mugshot-0.2.2/po/de.po mugshot-0.2.3/po/de.po --- mugshot-0.2.2/po/de.po 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/po/de.po 2014-04-05 01:11:17.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: mugshot\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-03-08 23:21-0500\n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" "PO-Revision-Date: 2013-07-25 16:17+0000\n" "Last-Translator: Simon Steinbeiß \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-09 06:08+0000\n" -"X-Generator: Launchpad (build 16948)\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" #: ../mugshot.desktop.in.h:1 msgid "About Me" @@ -61,7 +61,7 @@ msgid "Browse…" msgstr "Durchsuchen …" -#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:491 +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 msgid "Mugshot" msgstr "Benutzerfoto" @@ -130,32 +130,32 @@ #. Set the record button to retry, and disable it until the capture #. finishes. -#: ../mugshot/CameraMugshotDialog.py:280 +#: ../mugshot/CameraMugshotDialog.py:278 msgid "Retry" msgstr "Erneut versuchen" #. Password was incorrect, complain. -#: ../mugshot/MugshotWindow.py:300 +#: ../mugshot/MugshotWindow.py:328 msgid "Authentication Failed" msgstr "" -#: ../mugshot/MugshotWindow.py:301 +#: ../mugshot/MugshotWindow.py:329 msgid "User details were not updated." msgstr "" -#: ../mugshot/MugshotWindow.py:421 +#: ../mugshot/MugshotWindow.py:493 msgid "Update Pidgin buddy icon?" msgstr "Pidgin buddy icon aktualisieren?" -#: ../mugshot/MugshotWindow.py:422 +#: ../mugshot/MugshotWindow.py:494 msgid "Would you also like to update your Pidgin buddy icon?" msgstr "Soll das Pidgin buddy icon auch aktualisiert werden?" -#: ../mugshot/MugshotWindow.py:492 +#: ../mugshot/MugshotWindow.py:572 msgid "Enter your password to change user details." msgstr "" -#: ../mugshot/MugshotWindow.py:494 +#: ../mugshot/MugshotWindow.py:574 msgid "" "This is a security measure to prevent unwanted updates\n" "to your personal information." @@ -163,39 +163,39 @@ "Dies ist eine Sicherheitsmaßnahme um ungewollte Aktualisierungen\n" "der persönlichen Informationen zu verhindern." -#: ../mugshot/MugshotWindow.py:641 +#: ../mugshot/MugshotWindow.py:725 msgid "Update LibreOffice user details?" msgstr "LibreOffice Benutzerdaten aktualisieren?" -#: ../mugshot/MugshotWindow.py:642 +#: ../mugshot/MugshotWindow.py:726 msgid "Would you also like to update your user details in LibreOffice?" msgstr "Sollen die LibreOffice Benutzerdaten auch aktualisiert werden?" -#: ../mugshot_lib/SudoDialog.py:65 +#: ../mugshot_lib/SudoDialog.py:80 msgid "Cancel" msgstr "" -#: ../mugshot_lib/SudoDialog.py:66 +#: ../mugshot_lib/SudoDialog.py:81 msgid "OK" msgstr "" -#: ../mugshot_lib/SudoDialog.py:79 +#: ../mugshot_lib/SudoDialog.py:94 msgid "" "Enter your password to\n" "perform administrative tasks." msgstr "" -#: ../mugshot_lib/SudoDialog.py:81 +#: ../mugshot_lib/SudoDialog.py:96 #, python-format msgid "" "The application '%s' lets you\n" "modify essential parts of your system." msgstr "" -#: ../mugshot_lib/SudoDialog.py:102 +#: ../mugshot_lib/SudoDialog.py:117 msgid "Incorrect password... try again." msgstr "" -#: ../mugshot_lib/SudoDialog.py:107 +#: ../mugshot_lib/SudoDialog.py:122 msgid "Password:" msgstr "Passwort:" diff -Nru mugshot-0.2.2/po/en_AU.po mugshot-0.2.3/po/en_AU.po --- mugshot-0.2.2/po/en_AU.po 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/po/en_AU.po 2014-04-05 01:11:17.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: mugshot\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-03-08 23:21-0500\n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" "PO-Revision-Date: 2013-07-19 10:01+0000\n" "Last-Translator: Jackson Doak \n" "Language-Team: English (Australia) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-09 06:08+0000\n" -"X-Generator: Launchpad (build 16948)\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" #: ../mugshot.desktop.in.h:1 msgid "About Me" @@ -61,7 +61,7 @@ msgid "Browse…" msgstr "Browse…" -#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:491 +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 msgid "Mugshot" msgstr "Mugshot" @@ -130,32 +130,32 @@ #. Set the record button to retry, and disable it until the capture #. finishes. -#: ../mugshot/CameraMugshotDialog.py:280 +#: ../mugshot/CameraMugshotDialog.py:278 msgid "Retry" msgstr "Retry" #. Password was incorrect, complain. -#: ../mugshot/MugshotWindow.py:300 +#: ../mugshot/MugshotWindow.py:328 msgid "Authentication Failed" msgstr "" -#: ../mugshot/MugshotWindow.py:301 +#: ../mugshot/MugshotWindow.py:329 msgid "User details were not updated." msgstr "" -#: ../mugshot/MugshotWindow.py:421 +#: ../mugshot/MugshotWindow.py:493 msgid "Update Pidgin buddy icon?" msgstr "Update Pidgin buddy icon?" -#: ../mugshot/MugshotWindow.py:422 +#: ../mugshot/MugshotWindow.py:494 msgid "Would you also like to update your Pidgin buddy icon?" msgstr "Would you also like to update your Pidgin buddy icon?" -#: ../mugshot/MugshotWindow.py:492 +#: ../mugshot/MugshotWindow.py:572 msgid "Enter your password to change user details." msgstr "" -#: ../mugshot/MugshotWindow.py:494 +#: ../mugshot/MugshotWindow.py:574 msgid "" "This is a security measure to prevent unwanted updates\n" "to your personal information." @@ -163,39 +163,39 @@ "This is a security measure to prevent unwanted updates\n" "to your personal information." -#: ../mugshot/MugshotWindow.py:641 +#: ../mugshot/MugshotWindow.py:725 msgid "Update LibreOffice user details?" msgstr "Update LibreOffice user details?" -#: ../mugshot/MugshotWindow.py:642 +#: ../mugshot/MugshotWindow.py:726 msgid "Would you also like to update your user details in LibreOffice?" msgstr "Would you also like to update your user details in LibreOffice?" -#: ../mugshot_lib/SudoDialog.py:65 +#: ../mugshot_lib/SudoDialog.py:80 msgid "Cancel" msgstr "" -#: ../mugshot_lib/SudoDialog.py:66 +#: ../mugshot_lib/SudoDialog.py:81 msgid "OK" msgstr "" -#: ../mugshot_lib/SudoDialog.py:79 +#: ../mugshot_lib/SudoDialog.py:94 msgid "" "Enter your password to\n" "perform administrative tasks." msgstr "" -#: ../mugshot_lib/SudoDialog.py:81 +#: ../mugshot_lib/SudoDialog.py:96 #, python-format msgid "" "The application '%s' lets you\n" "modify essential parts of your system." msgstr "" -#: ../mugshot_lib/SudoDialog.py:102 +#: ../mugshot_lib/SudoDialog.py:117 msgid "Incorrect password... try again." msgstr "" -#: ../mugshot_lib/SudoDialog.py:107 +#: ../mugshot_lib/SudoDialog.py:122 msgid "Password:" msgstr "Password:" diff -Nru mugshot-0.2.2/po/es.po mugshot-0.2.3/po/es.po --- mugshot-0.2.2/po/es.po 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/po/es.po 2014-04-05 01:11:17.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: mugshot\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-03-08 23:21-0500\n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" "PO-Revision-Date: 2014-03-02 23:58+0000\n" "Last-Translator: Adolfo Jayme \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-09 06:08+0000\n" -"X-Generator: Launchpad (build 16948)\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" #: ../mugshot.desktop.in.h:1 msgid "About Me" @@ -61,7 +61,7 @@ msgid "Browse…" msgstr "Examinar…" -#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:491 +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 msgid "Mugshot" msgstr "Mugshot" @@ -131,32 +131,32 @@ #. Set the record button to retry, and disable it until the capture #. finishes. -#: ../mugshot/CameraMugshotDialog.py:280 +#: ../mugshot/CameraMugshotDialog.py:278 msgid "Retry" msgstr "Reintentar" #. Password was incorrect, complain. -#: ../mugshot/MugshotWindow.py:300 +#: ../mugshot/MugshotWindow.py:328 msgid "Authentication Failed" msgstr "Falló la autenticación" -#: ../mugshot/MugshotWindow.py:301 +#: ../mugshot/MugshotWindow.py:329 msgid "User details were not updated." msgstr "No se actualizaron los datos del usuario." -#: ../mugshot/MugshotWindow.py:421 +#: ../mugshot/MugshotWindow.py:493 msgid "Update Pidgin buddy icon?" msgstr "¿Actualizar el icono de amigo de Pidgin?" -#: ../mugshot/MugshotWindow.py:422 +#: ../mugshot/MugshotWindow.py:494 msgid "Would you also like to update your Pidgin buddy icon?" msgstr "¿Quiere actualizar también el icono de amigo de Pidgin?" -#: ../mugshot/MugshotWindow.py:492 +#: ../mugshot/MugshotWindow.py:572 msgid "Enter your password to change user details." msgstr "Escriba su contraseña para cambiar los detalles del usuario." -#: ../mugshot/MugshotWindow.py:494 +#: ../mugshot/MugshotWindow.py:574 msgid "" "This is a security measure to prevent unwanted updates\n" "to your personal information." @@ -164,23 +164,23 @@ "Esta es una medida de seguridad para prevenir actualizaciones\n" " no deseadas de su información personal." -#: ../mugshot/MugshotWindow.py:641 +#: ../mugshot/MugshotWindow.py:725 msgid "Update LibreOffice user details?" msgstr "¿Actualizar los detalles de usuario de LibreOffice?" -#: ../mugshot/MugshotWindow.py:642 +#: ../mugshot/MugshotWindow.py:726 msgid "Would you also like to update your user details in LibreOffice?" msgstr "¿Quiere actualizar también los detalles de usuario de LibreOffice?" -#: ../mugshot_lib/SudoDialog.py:65 +#: ../mugshot_lib/SudoDialog.py:80 msgid "Cancel" msgstr "Cancelar" -#: ../mugshot_lib/SudoDialog.py:66 +#: ../mugshot_lib/SudoDialog.py:81 msgid "OK" msgstr "Aceptar" -#: ../mugshot_lib/SudoDialog.py:79 +#: ../mugshot_lib/SudoDialog.py:94 msgid "" "Enter your password to\n" "perform administrative tasks." @@ -188,7 +188,7 @@ "Escriba su contraseña para\n" "realizar tareas administrativas." -#: ../mugshot_lib/SudoDialog.py:81 +#: ../mugshot_lib/SudoDialog.py:96 #, python-format msgid "" "The application '%s' lets you\n" @@ -197,10 +197,10 @@ "La aplicación «%s» le permite\n" "modificar partes esenciales del sistema." -#: ../mugshot_lib/SudoDialog.py:102 +#: ../mugshot_lib/SudoDialog.py:117 msgid "Incorrect password... try again." msgstr "Contraseña incorrecta. Inténtelo de nuevo." -#: ../mugshot_lib/SudoDialog.py:107 +#: ../mugshot_lib/SudoDialog.py:122 msgid "Password:" msgstr "Contraseña:" diff -Nru mugshot-0.2.2/po/fi.po mugshot-0.2.3/po/fi.po --- mugshot-0.2.2/po/fi.po 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/po/fi.po 2014-04-05 01:11:17.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: mugshot\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-03-08 23:21-0500\n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" "PO-Revision-Date: 2013-07-19 09:51+0000\n" "Last-Translator: Pasi Lallinaho \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-09 06:08+0000\n" -"X-Generator: Launchpad (build 16948)\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" #: ../mugshot.desktop.in.h:1 msgid "About Me" @@ -61,7 +61,7 @@ msgid "Browse…" msgstr "Selaa…" -#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:491 +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 msgid "Mugshot" msgstr "Valokuva" @@ -131,32 +131,32 @@ #. Set the record button to retry, and disable it until the capture #. finishes. -#: ../mugshot/CameraMugshotDialog.py:280 +#: ../mugshot/CameraMugshotDialog.py:278 msgid "Retry" msgstr "Yritä uudelleen" #. Password was incorrect, complain. -#: ../mugshot/MugshotWindow.py:300 +#: ../mugshot/MugshotWindow.py:328 msgid "Authentication Failed" msgstr "" -#: ../mugshot/MugshotWindow.py:301 +#: ../mugshot/MugshotWindow.py:329 msgid "User details were not updated." msgstr "" -#: ../mugshot/MugshotWindow.py:421 +#: ../mugshot/MugshotWindow.py:493 msgid "Update Pidgin buddy icon?" msgstr "Päivitä Pidginin tuttavakuvake?" -#: ../mugshot/MugshotWindow.py:422 +#: ../mugshot/MugshotWindow.py:494 msgid "Would you also like to update your Pidgin buddy icon?" msgstr "Haluatko päivittää myös Pidginin tuttavakuvakkeen?" -#: ../mugshot/MugshotWindow.py:492 +#: ../mugshot/MugshotWindow.py:572 msgid "Enter your password to change user details." msgstr "" -#: ../mugshot/MugshotWindow.py:494 +#: ../mugshot/MugshotWindow.py:574 msgid "" "This is a security measure to prevent unwanted updates\n" "to your personal information." @@ -164,39 +164,39 @@ "Tämä on turvallisuustoimenpide, jolla estetään ei-toivotut päivitykset\n" "henkilökohtaisiin tietoihisi." -#: ../mugshot/MugshotWindow.py:641 +#: ../mugshot/MugshotWindow.py:725 msgid "Update LibreOffice user details?" msgstr "Päivitä LibreOfficen käyttäjätiedot?" -#: ../mugshot/MugshotWindow.py:642 +#: ../mugshot/MugshotWindow.py:726 msgid "Would you also like to update your user details in LibreOffice?" msgstr "Haluatko päivittää myös LibreOfficen käyttäjätietosi?" -#: ../mugshot_lib/SudoDialog.py:65 +#: ../mugshot_lib/SudoDialog.py:80 msgid "Cancel" msgstr "" -#: ../mugshot_lib/SudoDialog.py:66 +#: ../mugshot_lib/SudoDialog.py:81 msgid "OK" msgstr "" -#: ../mugshot_lib/SudoDialog.py:79 +#: ../mugshot_lib/SudoDialog.py:94 msgid "" "Enter your password to\n" "perform administrative tasks." msgstr "" -#: ../mugshot_lib/SudoDialog.py:81 +#: ../mugshot_lib/SudoDialog.py:96 #, python-format msgid "" "The application '%s' lets you\n" "modify essential parts of your system." msgstr "" -#: ../mugshot_lib/SudoDialog.py:102 +#: ../mugshot_lib/SudoDialog.py:117 msgid "Incorrect password... try again." msgstr "" -#: ../mugshot_lib/SudoDialog.py:107 +#: ../mugshot_lib/SudoDialog.py:122 msgid "Password:" msgstr "Salasana:" diff -Nru mugshot-0.2.2/po/fr.po mugshot-0.2.3/po/fr.po --- mugshot-0.2.2/po/fr.po 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/po/fr.po 2014-04-05 01:11:17.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: mugshot\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-03-08 23:21-0500\n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" "PO-Revision-Date: 2013-07-19 14:52+0000\n" "Last-Translator: Benoit THIBAUD \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-09 06:08+0000\n" -"X-Generator: Launchpad (build 16948)\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" #: ../mugshot.desktop.in.h:1 msgid "About Me" @@ -61,7 +61,7 @@ msgid "Browse…" msgstr "Parcourir…" -#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:491 +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 msgid "Mugshot" msgstr "Mugshot" @@ -130,32 +130,32 @@ #. Set the record button to retry, and disable it until the capture #. finishes. -#: ../mugshot/CameraMugshotDialog.py:280 +#: ../mugshot/CameraMugshotDialog.py:278 msgid "Retry" msgstr "Réessayer" #. Password was incorrect, complain. -#: ../mugshot/MugshotWindow.py:300 +#: ../mugshot/MugshotWindow.py:328 msgid "Authentication Failed" msgstr "" -#: ../mugshot/MugshotWindow.py:301 +#: ../mugshot/MugshotWindow.py:329 msgid "User details were not updated." msgstr "" -#: ../mugshot/MugshotWindow.py:421 +#: ../mugshot/MugshotWindow.py:493 msgid "Update Pidgin buddy icon?" msgstr "Mettre à jour aussi l'avatar de Pidgin ?" -#: ../mugshot/MugshotWindow.py:422 +#: ../mugshot/MugshotWindow.py:494 msgid "Would you also like to update your Pidgin buddy icon?" msgstr "Souhaitez-vous mettre à jour aussi votre avatar dans Pidgin ?" -#: ../mugshot/MugshotWindow.py:492 +#: ../mugshot/MugshotWindow.py:572 msgid "Enter your password to change user details." msgstr "" -#: ../mugshot/MugshotWindow.py:494 +#: ../mugshot/MugshotWindow.py:574 msgid "" "This is a security measure to prevent unwanted updates\n" "to your personal information." @@ -164,40 +164,40 @@ "souhaitées\n" "dans vos informations personnelles." -#: ../mugshot/MugshotWindow.py:641 +#: ../mugshot/MugshotWindow.py:725 msgid "Update LibreOffice user details?" msgstr "Mettre à jour aussi les infos utilisateurs de LibreOffice ?" -#: ../mugshot/MugshotWindow.py:642 +#: ../mugshot/MugshotWindow.py:726 msgid "Would you also like to update your user details in LibreOffice?" msgstr "" "Souhaitez-vous mettre à jour aussi vos infos utilisateurs dans LibreOffice ?" -#: ../mugshot_lib/SudoDialog.py:65 +#: ../mugshot_lib/SudoDialog.py:80 msgid "Cancel" msgstr "" -#: ../mugshot_lib/SudoDialog.py:66 +#: ../mugshot_lib/SudoDialog.py:81 msgid "OK" msgstr "" -#: ../mugshot_lib/SudoDialog.py:79 +#: ../mugshot_lib/SudoDialog.py:94 msgid "" "Enter your password to\n" "perform administrative tasks." msgstr "" -#: ../mugshot_lib/SudoDialog.py:81 +#: ../mugshot_lib/SudoDialog.py:96 #, python-format msgid "" "The application '%s' lets you\n" "modify essential parts of your system." msgstr "" -#: ../mugshot_lib/SudoDialog.py:102 +#: ../mugshot_lib/SudoDialog.py:117 msgid "Incorrect password... try again." msgstr "" -#: ../mugshot_lib/SudoDialog.py:107 +#: ../mugshot_lib/SudoDialog.py:122 msgid "Password:" msgstr "Mot de passe :" diff -Nru mugshot-0.2.2/po/it.po mugshot-0.2.3/po/it.po --- mugshot-0.2.2/po/it.po 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/po/it.po 2014-04-05 01:11:17.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: mugshot\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-03-08 23:21-0500\n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" "PO-Revision-Date: 2013-08-14 22:31+0000\n" "Last-Translator: Edoardo Maria Elidoro \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-09 06:08+0000\n" -"X-Generator: Launchpad (build 16948)\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" #: ../mugshot.desktop.in.h:1 msgid "About Me" @@ -61,7 +61,7 @@ msgid "Browse…" msgstr "Esplora..." -#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:491 +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 msgid "Mugshot" msgstr "" @@ -126,32 +126,32 @@ #. Set the record button to retry, and disable it until the capture #. finishes. -#: ../mugshot/CameraMugshotDialog.py:280 +#: ../mugshot/CameraMugshotDialog.py:278 msgid "Retry" msgstr "Riprova" #. Password was incorrect, complain. -#: ../mugshot/MugshotWindow.py:300 +#: ../mugshot/MugshotWindow.py:328 msgid "Authentication Failed" msgstr "" -#: ../mugshot/MugshotWindow.py:301 +#: ../mugshot/MugshotWindow.py:329 msgid "User details were not updated." msgstr "" -#: ../mugshot/MugshotWindow.py:421 +#: ../mugshot/MugshotWindow.py:493 msgid "Update Pidgin buddy icon?" msgstr "" -#: ../mugshot/MugshotWindow.py:422 +#: ../mugshot/MugshotWindow.py:494 msgid "Would you also like to update your Pidgin buddy icon?" msgstr "" -#: ../mugshot/MugshotWindow.py:492 +#: ../mugshot/MugshotWindow.py:572 msgid "Enter your password to change user details." msgstr "" -#: ../mugshot/MugshotWindow.py:494 +#: ../mugshot/MugshotWindow.py:574 msgid "" "This is a security measure to prevent unwanted updates\n" "to your personal information." @@ -159,39 +159,39 @@ "Questa è una misura di sicurezza per evitare aggiornamenti\n" "indesiderati alle tue informazioni." -#: ../mugshot/MugshotWindow.py:641 +#: ../mugshot/MugshotWindow.py:725 msgid "Update LibreOffice user details?" msgstr "" -#: ../mugshot/MugshotWindow.py:642 +#: ../mugshot/MugshotWindow.py:726 msgid "Would you also like to update your user details in LibreOffice?" msgstr "" -#: ../mugshot_lib/SudoDialog.py:65 +#: ../mugshot_lib/SudoDialog.py:80 msgid "Cancel" msgstr "" -#: ../mugshot_lib/SudoDialog.py:66 +#: ../mugshot_lib/SudoDialog.py:81 msgid "OK" msgstr "" -#: ../mugshot_lib/SudoDialog.py:79 +#: ../mugshot_lib/SudoDialog.py:94 msgid "" "Enter your password to\n" "perform administrative tasks." msgstr "" -#: ../mugshot_lib/SudoDialog.py:81 +#: ../mugshot_lib/SudoDialog.py:96 #, python-format msgid "" "The application '%s' lets you\n" "modify essential parts of your system." msgstr "" -#: ../mugshot_lib/SudoDialog.py:102 +#: ../mugshot_lib/SudoDialog.py:117 msgid "Incorrect password... try again." msgstr "" -#: ../mugshot_lib/SudoDialog.py:107 +#: ../mugshot_lib/SudoDialog.py:122 msgid "Password:" msgstr "Password:" diff -Nru mugshot-0.2.2/po/ja.po mugshot-0.2.3/po/ja.po --- mugshot-0.2.2/po/ja.po 1970-01-01 00:00:00.000000000 +0000 +++ mugshot-0.2.3/po/ja.po 2014-04-05 01:11:17.000000000 +0000 @@ -0,0 +1,205 @@ +# Japanese translation for mugshot +# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 +# This file is distributed under the same license as the mugshot package. +# FIRST AUTHOR , 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: mugshot\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" +"PO-Revision-Date: 2014-03-30 02:53+0000\n" +"Last-Translator: Ikuya Awashiro \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" + +#: ../mugshot.desktop.in.h:1 +msgid "About Me" +msgstr "個人情報" + +#: ../mugshot.desktop.in.h:2 +msgid "Configure your profile image and contact details" +msgstr "プロファイルの画像と連絡先の詳細を設定" + +#: ../data/ui/CameraMugshotDialog.ui.h:1 +msgid "Capture - Mugshot" +msgstr "キャプチャ - Mugshot" + +#: ../data/ui/MugshotWindow.ui.h:1 +msgid "Preview" +msgstr "プレビュー" + +#: ../data/ui/MugshotWindow.ui.h:2 +msgid "Center" +msgstr "中央" + +#: ../data/ui/MugshotWindow.ui.h:3 +msgid "Left" +msgstr "左" + +#: ../data/ui/MugshotWindow.ui.h:4 +msgid "Right" +msgstr "右" + +#: ../data/ui/MugshotWindow.ui.h:5 +msgid "Crop" +msgstr "切り抜き" + +#: ../data/ui/MugshotWindow.ui.h:6 +msgid "Select from stock…" +msgstr "ストックから選択..." + +#: ../data/ui/MugshotWindow.ui.h:7 +msgid "Capture from camera…" +msgstr "カメラでキャプチャ..." + +#: ../data/ui/MugshotWindow.ui.h:8 +msgid "Browse…" +msgstr "参照…" + +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 +msgid "Mugshot" +msgstr "Mugshot" + +#: ../data/ui/MugshotWindow.ui.h:10 +msgid "First Name" +msgstr "" + +#: ../data/ui/MugshotWindow.ui.h:11 +msgid "Last Name" +msgstr "" + +#: ../data/ui/MugshotWindow.ui.h:12 +msgid "Initials" +msgstr "イニシャル" + +#: ../data/ui/MugshotWindow.ui.h:13 +msgid "Home Phone" +msgstr "電話番号" + +#: ../data/ui/MugshotWindow.ui.h:14 +msgid "Email Address" +msgstr "メールアドレス" + +#: ../data/ui/MugshotWindow.ui.h:15 +msgid "Office Phone" +msgstr "勤務先の電話番号" + +#: ../data/ui/MugshotWindow.ui.h:16 +msgid "Fax" +msgstr "FAX" + +#: ../data/ui/MugshotWindow.ui.h:17 +msgid "Select a photo…" +msgstr "写真の選択..." + +#: ../mugshot/__init__.py:34 +msgid "Show debug messages (-vv debugs mugshot_lib also)" +msgstr "デバッグメッセージの表示 (-vv debugs mugshot_lib でも可)" + +#: ../mugshot/CameraMugshotDialog.py:106 +#, python-format +msgid "Camera failed to load. Devices: %s" +msgstr "%s のカメラのロードに失敗しました。" + +#. Translators: Please include newlines, as required to fit the message. +#: ../mugshot/CameraMugshotDialog.py:124 +msgid "" +"Sorry, but your camera\n" +"failed to initialize." +msgstr "" +"申し訳ございません、カメラ\n" +"の読み込みに失敗しました。" + +#. Translators: Please include newlines, as required to fit the message. +#: ../mugshot/CameraMugshotDialog.py:131 +msgid "" +"Please wait while your\n" +"camera is initialized." +msgstr "" +"カメラの初期化が終わるまで\n" +"お待ちください。" + +#: ../mugshot/CameraMugshotDialog.py:151 +msgid "Cannot display camera output.Ignoring play command" +msgstr "カメラの出力を表示できませんでした。再生コマンドが無視されました。" + +#. Set the record button to retry, and disable it until the capture +#. finishes. +#: ../mugshot/CameraMugshotDialog.py:278 +msgid "Retry" +msgstr "再試行" + +#. Password was incorrect, complain. +#: ../mugshot/MugshotWindow.py:328 +msgid "Authentication Failed" +msgstr "認証に失敗しました" + +#: ../mugshot/MugshotWindow.py:329 +msgid "User details were not updated." +msgstr "ユーザーの詳細はアップデートされませんでした。" + +#: ../mugshot/MugshotWindow.py:493 +msgid "Update Pidgin buddy icon?" +msgstr "Pigdinの仲間アイコン" + +#: ../mugshot/MugshotWindow.py:494 +msgid "Would you also like to update your Pidgin buddy icon?" +msgstr "Pigdinの仲間アイコンもアップデートしますか?" + +#: ../mugshot/MugshotWindow.py:572 +msgid "Enter your password to change user details." +msgstr "ユーザーの詳細を変更するためにパスワードを入力してください。" + +#: ../mugshot/MugshotWindow.py:574 +msgid "" +"This is a security measure to prevent unwanted updates\n" +"to your personal information." +msgstr "" +"個人情報を希望していないのにアップデート\n" +"されないようにするセキュリティの方針です。" + +#: ../mugshot/MugshotWindow.py:725 +msgid "Update LibreOffice user details?" +msgstr "LibreOfficeのユーザー詳細" + +#: ../mugshot/MugshotWindow.py:726 +msgid "Would you also like to update your user details in LibreOffice?" +msgstr "LibreOfficeのユーザー詳細もアップデートしますか?" + +#: ../mugshot_lib/SudoDialog.py:80 +msgid "Cancel" +msgstr "キャンセル" + +#: ../mugshot_lib/SudoDialog.py:81 +msgid "OK" +msgstr "OK" + +#: ../mugshot_lib/SudoDialog.py:94 +msgid "" +"Enter your password to\n" +"perform administrative tasks." +msgstr "" +"管理者権限が必要な操作を実行するため\n" +"パスワードを入力してください。" + +#: ../mugshot_lib/SudoDialog.py:96 +#, python-format +msgid "" +"The application '%s' lets you\n" +"modify essential parts of your system." +msgstr "" +"アプリケーション '%s' はシステムの\n" +"主要な部分を修正しました。" + +#: ../mugshot_lib/SudoDialog.py:117 +msgid "Incorrect password... try again." +msgstr "パスワードが正しくありません... 再入力してください。" + +#: ../mugshot_lib/SudoDialog.py:122 +msgid "Password:" +msgstr "パスワード:" diff -Nru mugshot-0.2.2/po/nl.po mugshot-0.2.3/po/nl.po --- mugshot-0.2.2/po/nl.po 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/po/nl.po 2014-04-05 01:11:17.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: mugshot\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-03-08 23:21-0500\n" -"PO-Revision-Date: 2014-02-27 22:24+0000\n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" +"PO-Revision-Date: 2014-03-14 20:41+0000\n" "Last-Translator: Pjotr12345 \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-09 06:08+0000\n" -"X-Generator: Launchpad (build 16948)\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" #: ../mugshot.desktop.in.h:1 msgid "About Me" @@ -61,7 +61,7 @@ msgid "Browse…" msgstr "Bladeren…" -#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:491 +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 msgid "Mugshot" msgstr "Pasfoto" @@ -130,32 +130,32 @@ #. Set the record button to retry, and disable it until the capture #. finishes. -#: ../mugshot/CameraMugshotDialog.py:280 +#: ../mugshot/CameraMugshotDialog.py:278 msgid "Retry" msgstr "Probeer opnieuw" #. Password was incorrect, complain. -#: ../mugshot/MugshotWindow.py:300 +#: ../mugshot/MugshotWindow.py:328 msgid "Authentication Failed" -msgstr "" +msgstr "Authenticatie mislukt" -#: ../mugshot/MugshotWindow.py:301 +#: ../mugshot/MugshotWindow.py:329 msgid "User details were not updated." -msgstr "" +msgstr "Gebruikersdetails werden niet bijgewerkt." -#: ../mugshot/MugshotWindow.py:421 +#: ../mugshot/MugshotWindow.py:493 msgid "Update Pidgin buddy icon?" msgstr "Pictogram voor Pidgin-vriend bijwerken?" -#: ../mugshot/MugshotWindow.py:422 +#: ../mugshot/MugshotWindow.py:494 msgid "Would you also like to update your Pidgin buddy icon?" msgstr "Wilt u ook uw pictogram bijwerken voor Pidgin-vriend?" -#: ../mugshot/MugshotWindow.py:492 +#: ../mugshot/MugshotWindow.py:572 msgid "Enter your password to change user details." -msgstr "" +msgstr "Voer uw wachtwoord in om gebruikersdetails te wijzigen." -#: ../mugshot/MugshotWindow.py:494 +#: ../mugshot/MugshotWindow.py:574 msgid "" "This is a security measure to prevent unwanted updates\n" "to your personal information." @@ -163,39 +163,45 @@ "Dit is een veiligheidsmaatregel ter voorkoming van\n" "ongewenste wijzigingen in uw persoonlijke informatie." -#: ../mugshot/MugshotWindow.py:641 +#: ../mugshot/MugshotWindow.py:725 msgid "Update LibreOffice user details?" msgstr "Gebruikerdetails voor Libre Office bijwerken?" -#: ../mugshot/MugshotWindow.py:642 +#: ../mugshot/MugshotWindow.py:726 msgid "Would you also like to update your user details in LibreOffice?" msgstr "Wilt u ook uw gebruikerdetails bijwerken voor Libre Office?" -#: ../mugshot_lib/SudoDialog.py:65 +#: ../mugshot_lib/SudoDialog.py:80 msgid "Cancel" -msgstr "" +msgstr "Annuleren" -#: ../mugshot_lib/SudoDialog.py:66 +#: ../mugshot_lib/SudoDialog.py:81 msgid "OK" -msgstr "" +msgstr "OK" -#: ../mugshot_lib/SudoDialog.py:79 +#: ../mugshot_lib/SudoDialog.py:94 msgid "" "Enter your password to\n" "perform administrative tasks." msgstr "" +"Voer uw wachtwoord in\n" +"om beheerstaken uit te\n" +"voeren." -#: ../mugshot_lib/SudoDialog.py:81 +#: ../mugshot_lib/SudoDialog.py:96 #, python-format msgid "" "The application '%s' lets you\n" "modify essential parts of your system." msgstr "" +"De toepassing '%s' laat u\n" +"essentiele delen van uw\n" +"systeem wijzigen." -#: ../mugshot_lib/SudoDialog.py:102 +#: ../mugshot_lib/SudoDialog.py:117 msgid "Incorrect password... try again." -msgstr "" +msgstr "Onjuist wachtwoord.... Probeer het a.u.b. opnieuw." -#: ../mugshot_lib/SudoDialog.py:107 +#: ../mugshot_lib/SudoDialog.py:122 msgid "Password:" msgstr "Wachtwoord:" diff -Nru mugshot-0.2.2/po/pl.po mugshot-0.2.3/po/pl.po --- mugshot-0.2.2/po/pl.po 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/po/pl.po 2014-04-05 01:11:17.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: mugshot\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-03-08 23:21-0500\n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" "PO-Revision-Date: 2013-10-07 14:17+0000\n" "Last-Translator: Michał Olber \n" "Language-Team: English (Australia) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-09 06:08+0000\n" -"X-Generator: Launchpad (build 16948)\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" #: ../mugshot.desktop.in.h:1 msgid "About Me" @@ -61,7 +61,7 @@ msgid "Browse…" msgstr "Przeglądaj…" -#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:491 +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 msgid "Mugshot" msgstr "Mugshot" @@ -130,32 +130,32 @@ #. Set the record button to retry, and disable it until the capture #. finishes. -#: ../mugshot/CameraMugshotDialog.py:280 +#: ../mugshot/CameraMugshotDialog.py:278 msgid "Retry" msgstr "Powtórz" #. Password was incorrect, complain. -#: ../mugshot/MugshotWindow.py:300 +#: ../mugshot/MugshotWindow.py:328 msgid "Authentication Failed" msgstr "" -#: ../mugshot/MugshotWindow.py:301 +#: ../mugshot/MugshotWindow.py:329 msgid "User details were not updated." msgstr "" -#: ../mugshot/MugshotWindow.py:421 +#: ../mugshot/MugshotWindow.py:493 msgid "Update Pidgin buddy icon?" msgstr "Zaktualizować ikonę przyjaciela w Pidginie?" -#: ../mugshot/MugshotWindow.py:422 +#: ../mugshot/MugshotWindow.py:494 msgid "Would you also like to update your Pidgin buddy icon?" msgstr "Czy można zaktualizować także ikonę przyjaciela w Pidginie?" -#: ../mugshot/MugshotWindow.py:492 +#: ../mugshot/MugshotWindow.py:572 msgid "Enter your password to change user details." msgstr "" -#: ../mugshot/MugshotWindow.py:494 +#: ../mugshot/MugshotWindow.py:574 msgid "" "This is a security measure to prevent unwanted updates\n" "to your personal information." @@ -163,39 +163,39 @@ "Jest to krok zabezpieczający przed niechcianymi aktualizacjami\n" "Twojej osobistej bazy danych." -#: ../mugshot/MugshotWindow.py:641 +#: ../mugshot/MugshotWindow.py:725 msgid "Update LibreOffice user details?" msgstr "Zaktualizować ikonę przyjaciela w LibreOffice?" -#: ../mugshot/MugshotWindow.py:642 +#: ../mugshot/MugshotWindow.py:726 msgid "Would you also like to update your user details in LibreOffice?" msgstr "Czy można zaktualizować także ikonę przyjaciela w LibreOffice?" -#: ../mugshot_lib/SudoDialog.py:65 +#: ../mugshot_lib/SudoDialog.py:80 msgid "Cancel" msgstr "" -#: ../mugshot_lib/SudoDialog.py:66 +#: ../mugshot_lib/SudoDialog.py:81 msgid "OK" msgstr "" -#: ../mugshot_lib/SudoDialog.py:79 +#: ../mugshot_lib/SudoDialog.py:94 msgid "" "Enter your password to\n" "perform administrative tasks." msgstr "" -#: ../mugshot_lib/SudoDialog.py:81 +#: ../mugshot_lib/SudoDialog.py:96 #, python-format msgid "" "The application '%s' lets you\n" "modify essential parts of your system." msgstr "" -#: ../mugshot_lib/SudoDialog.py:102 +#: ../mugshot_lib/SudoDialog.py:117 msgid "Incorrect password... try again." msgstr "" -#: ../mugshot_lib/SudoDialog.py:107 +#: ../mugshot_lib/SudoDialog.py:122 msgid "Password:" msgstr "Hasło:" diff -Nru mugshot-0.2.2/po/pt_BR.po mugshot-0.2.3/po/pt_BR.po --- mugshot-0.2.2/po/pt_BR.po 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/po/pt_BR.po 2014-04-05 01:11:17.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: mugshot\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-03-08 23:21-0500\n" -"PO-Revision-Date: 2013-07-26 17:22+0000\n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" +"PO-Revision-Date: 2014-03-25 21:36+0000\n" "Last-Translator: Raphael David François \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-09 06:08+0000\n" -"X-Generator: Launchpad (build 16948)\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" #: ../mugshot.desktop.in.h:1 msgid "About Me" @@ -61,7 +61,7 @@ msgid "Browse…" msgstr "Procurar nos arquivos..." -#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:491 +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 msgid "Mugshot" msgstr "Mugshot" @@ -126,36 +126,36 @@ #: ../mugshot/CameraMugshotDialog.py:151 msgid "Cannot display camera output.Ignoring play command" -msgstr "" +msgstr "Não é possível mostrar saída da câmera. Ignorando comando play" #. Set the record button to retry, and disable it until the capture #. finishes. -#: ../mugshot/CameraMugshotDialog.py:280 +#: ../mugshot/CameraMugshotDialog.py:278 msgid "Retry" msgstr "Repetir" #. Password was incorrect, complain. -#: ../mugshot/MugshotWindow.py:300 +#: ../mugshot/MugshotWindow.py:328 msgid "Authentication Failed" -msgstr "" +msgstr "Autenticação Falhou" -#: ../mugshot/MugshotWindow.py:301 +#: ../mugshot/MugshotWindow.py:329 msgid "User details were not updated." -msgstr "" +msgstr "Informações do usuário não foram atualizadas." -#: ../mugshot/MugshotWindow.py:421 +#: ../mugshot/MugshotWindow.py:493 msgid "Update Pidgin buddy icon?" msgstr "Atualizar imagem do Pidgin?" -#: ../mugshot/MugshotWindow.py:422 +#: ../mugshot/MugshotWindow.py:494 msgid "Would you also like to update your Pidgin buddy icon?" msgstr "Gostaria também de atualizar sua imagem do Pidgin?" -#: ../mugshot/MugshotWindow.py:492 +#: ../mugshot/MugshotWindow.py:572 msgid "Enter your password to change user details." -msgstr "" +msgstr "Insira sua senha para alterar as informações de usuário." -#: ../mugshot/MugshotWindow.py:494 +#: ../mugshot/MugshotWindow.py:574 msgid "" "This is a security measure to prevent unwanted updates\n" "to your personal information." @@ -163,39 +163,43 @@ "Essa é uma medida de segurança para prevenir mudanças indesejadas\n" "em suas informações pessoais." -#: ../mugshot/MugshotWindow.py:641 +#: ../mugshot/MugshotWindow.py:725 msgid "Update LibreOffice user details?" msgstr "Atualizar dados de usuário do LibreOffice?" -#: ../mugshot/MugshotWindow.py:642 +#: ../mugshot/MugshotWindow.py:726 msgid "Would you also like to update your user details in LibreOffice?" msgstr "Gostaria também de atualizar seus dados de usuário no LibreOffice?" -#: ../mugshot_lib/SudoDialog.py:65 +#: ../mugshot_lib/SudoDialog.py:80 msgid "Cancel" -msgstr "" +msgstr "Cancelar" -#: ../mugshot_lib/SudoDialog.py:66 +#: ../mugshot_lib/SudoDialog.py:81 msgid "OK" -msgstr "" +msgstr "OK" -#: ../mugshot_lib/SudoDialog.py:79 +#: ../mugshot_lib/SudoDialog.py:94 msgid "" "Enter your password to\n" "perform administrative tasks." msgstr "" +"Insira sua senha para\n" +"realizar tarefas administrativas." -#: ../mugshot_lib/SudoDialog.py:81 +#: ../mugshot_lib/SudoDialog.py:96 #, python-format msgid "" "The application '%s' lets you\n" "modify essential parts of your system." msgstr "" +"A aplicação '%s' permite que você\n" +"modifique partes essenciais do sistema." -#: ../mugshot_lib/SudoDialog.py:102 +#: ../mugshot_lib/SudoDialog.py:117 msgid "Incorrect password... try again." -msgstr "" +msgstr "Senha incorreta... tente novamente." -#: ../mugshot_lib/SudoDialog.py:107 +#: ../mugshot_lib/SudoDialog.py:122 msgid "Password:" msgstr "Senha:" diff -Nru mugshot-0.2.2/po/pt.po mugshot-0.2.3/po/pt.po --- mugshot-0.2.2/po/pt.po 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/po/pt.po 2014-04-05 01:11:17.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: mugshot\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-03-08 23:21-0500\n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" "PO-Revision-Date: 2014-02-24 18:23+0000\n" "Last-Translator: David Pires \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-09 06:08+0000\n" -"X-Generator: Launchpad (build 16948)\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" #: ../mugshot.desktop.in.h:1 msgid "About Me" @@ -61,7 +61,7 @@ msgid "Browse…" msgstr "Procurar..." -#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:491 +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 msgid "Mugshot" msgstr "Mugshot" @@ -131,32 +131,32 @@ #. Set the record button to retry, and disable it until the capture #. finishes. -#: ../mugshot/CameraMugshotDialog.py:280 +#: ../mugshot/CameraMugshotDialog.py:278 msgid "Retry" msgstr "Tentar novamente" #. Password was incorrect, complain. -#: ../mugshot/MugshotWindow.py:300 +#: ../mugshot/MugshotWindow.py:328 msgid "Authentication Failed" msgstr "" -#: ../mugshot/MugshotWindow.py:301 +#: ../mugshot/MugshotWindow.py:329 msgid "User details were not updated." msgstr "" -#: ../mugshot/MugshotWindow.py:421 +#: ../mugshot/MugshotWindow.py:493 msgid "Update Pidgin buddy icon?" msgstr "Atualize o ícone buddy do Pidgin" -#: ../mugshot/MugshotWindow.py:422 +#: ../mugshot/MugshotWindow.py:494 msgid "Would you also like to update your Pidgin buddy icon?" msgstr "Gostaria também de atualizar o seu ícone buddy do Pidgin?" -#: ../mugshot/MugshotWindow.py:492 +#: ../mugshot/MugshotWindow.py:572 msgid "Enter your password to change user details." msgstr "" -#: ../mugshot/MugshotWindow.py:494 +#: ../mugshot/MugshotWindow.py:574 msgid "" "This is a security measure to prevent unwanted updates\n" "to your personal information." @@ -164,40 +164,40 @@ "É uma medida de segurança para evitar alterações indesejadas\n" "às suas informações pessoais." -#: ../mugshot/MugshotWindow.py:641 +#: ../mugshot/MugshotWindow.py:725 msgid "Update LibreOffice user details?" msgstr "Atualizar os detalhes de utilizador do LibreOffice?" -#: ../mugshot/MugshotWindow.py:642 +#: ../mugshot/MugshotWindow.py:726 msgid "Would you also like to update your user details in LibreOffice?" msgstr "" "Gostaria também de atualizar os seus detalhes de utilizador do LibreOffice?" -#: ../mugshot_lib/SudoDialog.py:65 +#: ../mugshot_lib/SudoDialog.py:80 msgid "Cancel" msgstr "" -#: ../mugshot_lib/SudoDialog.py:66 +#: ../mugshot_lib/SudoDialog.py:81 msgid "OK" msgstr "" -#: ../mugshot_lib/SudoDialog.py:79 +#: ../mugshot_lib/SudoDialog.py:94 msgid "" "Enter your password to\n" "perform administrative tasks." msgstr "" -#: ../mugshot_lib/SudoDialog.py:81 +#: ../mugshot_lib/SudoDialog.py:96 #, python-format msgid "" "The application '%s' lets you\n" "modify essential parts of your system." msgstr "" -#: ../mugshot_lib/SudoDialog.py:102 +#: ../mugshot_lib/SudoDialog.py:117 msgid "Incorrect password... try again." msgstr "" -#: ../mugshot_lib/SudoDialog.py:107 +#: ../mugshot_lib/SudoDialog.py:122 msgid "Password:" msgstr "Senha:" diff -Nru mugshot-0.2.2/po/ru.po mugshot-0.2.3/po/ru.po --- mugshot-0.2.2/po/ru.po 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/po/ru.po 2014-04-05 01:11:17.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: mugshot\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-03-08 23:21-0500\n" +"POT-Creation-Date: 2014-04-01 23:14-0400\n" "PO-Revision-Date: 2014-03-04 18:28+0000\n" "Last-Translator: Sergey Shlyapugin \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-09 06:08+0000\n" -"X-Generator: Launchpad (build 16948)\n" +"X-Launchpad-Export-Date: 2014-04-03 06:06+0000\n" +"X-Generator: Launchpad (build 16967)\n" #: ../mugshot.desktop.in.h:1 msgid "About Me" @@ -61,7 +61,7 @@ msgid "Browse…" msgstr "Обзор…" -#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:491 +#: ../data/ui/MugshotWindow.ui.h:9 ../mugshot/MugshotWindow.py:571 msgid "Mugshot" msgstr "Mugshot" @@ -129,32 +129,32 @@ #. Set the record button to retry, and disable it until the capture #. finishes. -#: ../mugshot/CameraMugshotDialog.py:280 +#: ../mugshot/CameraMugshotDialog.py:278 msgid "Retry" msgstr "Повторить" #. Password was incorrect, complain. -#: ../mugshot/MugshotWindow.py:300 +#: ../mugshot/MugshotWindow.py:328 msgid "Authentication Failed" msgstr "Ошибка аутентификации" -#: ../mugshot/MugshotWindow.py:301 +#: ../mugshot/MugshotWindow.py:329 msgid "User details were not updated." msgstr "Данные пользователя не были обновлены." -#: ../mugshot/MugshotWindow.py:421 +#: ../mugshot/MugshotWindow.py:493 msgid "Update Pidgin buddy icon?" msgstr "Обновить аватар в Pidgin?" -#: ../mugshot/MugshotWindow.py:422 +#: ../mugshot/MugshotWindow.py:494 msgid "Would you also like to update your Pidgin buddy icon?" msgstr "Обновить также ваш аватар в Pidgin?" -#: ../mugshot/MugshotWindow.py:492 +#: ../mugshot/MugshotWindow.py:572 msgid "Enter your password to change user details." msgstr "Введите ваг пароль для изменения данных пользователя." -#: ../mugshot/MugshotWindow.py:494 +#: ../mugshot/MugshotWindow.py:574 msgid "" "This is a security measure to prevent unwanted updates\n" "to your personal information." @@ -162,23 +162,23 @@ "Это мера безопасности для предотвращения нежелательных\n" "обновлений вашей персональной информации." -#: ../mugshot/MugshotWindow.py:641 +#: ../mugshot/MugshotWindow.py:725 msgid "Update LibreOffice user details?" msgstr "Обновить данные пользователя в LibreOffice?" -#: ../mugshot/MugshotWindow.py:642 +#: ../mugshot/MugshotWindow.py:726 msgid "Would you also like to update your user details in LibreOffice?" msgstr "Обновить также ваши данные пользователя в LibreOffice?" -#: ../mugshot_lib/SudoDialog.py:65 +#: ../mugshot_lib/SudoDialog.py:80 msgid "Cancel" msgstr "Отмена" -#: ../mugshot_lib/SudoDialog.py:66 +#: ../mugshot_lib/SudoDialog.py:81 msgid "OK" msgstr "OK" -#: ../mugshot_lib/SudoDialog.py:79 +#: ../mugshot_lib/SudoDialog.py:94 msgid "" "Enter your password to\n" "perform administrative tasks." @@ -186,7 +186,7 @@ "Введите ваш пароль для выполнения\n" "административных задач." -#: ../mugshot_lib/SudoDialog.py:81 +#: ../mugshot_lib/SudoDialog.py:96 #, python-format msgid "" "The application '%s' lets you\n" @@ -195,10 +195,10 @@ "Приложения %s' позволит вам\n" "модифицировать серьезную часть системы." -#: ../mugshot_lib/SudoDialog.py:102 +#: ../mugshot_lib/SudoDialog.py:117 msgid "Incorrect password... try again." msgstr "Неверный пароль... Попробуйте еще." -#: ../mugshot_lib/SudoDialog.py:107 +#: ../mugshot_lib/SudoDialog.py:122 msgid "Password:" msgstr "Пароль:" diff -Nru mugshot-0.2.2/setup.py mugshot-0.2.3/setup.py --- mugshot-0.2.2/setup.py 2014-03-09 11:58:08.000000000 +0000 +++ mugshot-0.2.3/setup.py 2014-04-02 09:49:11.000000000 +0000 @@ -22,10 +22,10 @@ import DistUtilsExtra.auto except ImportError: sys.stderr.write("To build mugshot you need " - "https://launchpad.net/python-distutils-extra\n") + "https://launchpad.net/python-distutils-extra\n") sys.exit(1) assert DistUtilsExtra.auto.__version__ >= '2.18', \ - 'needs DistUtilsExtra.auto >= 2.18' + 'needs DistUtilsExtra.auto >= 2.18' def update_config(libdir, values={}): @@ -55,17 +55,17 @@ def move_icon_file(root, target_data, prefix): """Move the icon files to their installation prefix.""" - old_icon_path = os.path.normpath( - os.path.join(root, target_data, 'share', 'mugshot', 'media')) + old_icon_path = os.path.normpath(os.path.join(root, target_data, 'share', + 'mugshot', 'media')) for icon_size in ['16x16', '22x22', '24x24', '48x48', '64x64', 'scalable']: if icon_size == 'scalable': old_icon_file = os.path.join(old_icon_path, 'mugshot.svg') else: old_icon_file = os.path.join(old_icon_path, - 'mugshot_%s.svg' % icon_size.split('x')[0]) - icon_path = os.path.normpath( - os.path.join(root, target_data, 'share', 'icons', 'hicolor', - icon_size, 'apps')) + 'mugshot_%s.svg' % + icon_size.split('x')[0]) + icon_path = os.path.normpath(os.path.join(root, target_data, 'share', + 'icons', 'hicolor', icon_size, 'apps')) icon_file = os.path.join(icon_path, 'mugshot.svg') old_icon_file = os.path.realpath(old_icon_file) icon_file = os.path.realpath(icon_file) @@ -89,8 +89,8 @@ def get_desktop_file(root, target_data, prefix): """Move the desktop file to its installation prefix.""" - desktop_path = os.path.realpath( - os.path.join(root, target_data, 'share', 'applications')) + desktop_path = os.path.realpath(os.path.join(root, target_data, 'share', + 'applications')) desktop_file = os.path.join(desktop_path, 'mugshot.desktop') return desktop_file @@ -125,13 +125,14 @@ DistUtilsExtra.auto.install_auto.run(self) print(("=== Installing %s, version %s ===" % - (self.distribution.get_name(), self.distribution.get_version()))) + (self.distribution.get_name(), self.distribution.get_version()))) if not self.prefix: self.prefix = '' if self.root: - target_data = os.path.relpath(self.install_data, self.root) + os.sep + target_data = os.path.relpath(self.install_data, self.root) + \ + os.sep target_pkgdata = os.path.join(target_data, 'share', 'mugshot', '') target_scripts = os.path.join(self.install_scripts, '') @@ -171,7 +172,7 @@ DistUtilsExtra.auto.setup( name='mugshot', - version='0.2.2', + version='0.2.3', license='GPL-3', author='Sean Davis', author_email='smd.seandavis@gmail.com',