liveusb/__init__.py | 9 +- liveusb/creator.py | 58 +++++++------- liveusb/gui.py | 70 ++++++++--------- po/POTFILES.in | 3 po/liveusb-creator.pot | 200 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 275 insertions(+), 65 deletions(-)
New commits: commit b2b0abe2f137095f8244f0b5e9eaa17c804cb533 Author: Luke Macken lmacken@redhat.com Date: Wed Aug 27 09:38:48 2008 -0400
Add our liveusb-creator.pot file
diff --git a/po/liveusb-creator.pot b/po/liveusb-creator.pot new file mode 100644 index 0000000..2b57bdd --- /dev/null +++ b/po/liveusb-creator.pot @@ -0,0 +1,200 @@ +# liveusb-creator. +# Copyright (C) 2008 Red Hat, Inc. +# This file is distributed under the same license as the liveusb-creator package. +# Luke Macken lmacken@redhat.com, 2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: liveusb-creator 2.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-08-27 09:34-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME EMAIL@ADDRESS\n" +"Language-Team: LANGUAGE LL@li.org\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../liveusb/gui.py:69 +#, python-format +msgid "Unknown release: %s" +msgstr "" + +#: ../liveusb/gui.py:73 +#, python-format +msgid "Downloading %s..." +msgstr "" + +#: ../liveusb/gui.py:152 +msgid "Verifying filesystem..." +msgstr "" + +#: ../liveusb/gui.py:155 +msgid "" +"Error: Cannot set the label or obtain the UUID of your device. Unable to " +"continue." +msgstr "" + +#: ../liveusb/gui.py:164 +msgid "Verifying SHA1 of LiveCD image..." +msgstr "" + +#: ../liveusb/gui.py:166 +msgid "" +"Error: The SHA1 of your Live CD is invalid. You can run this program with " +"the --noverify argument to bypass this verification check." +msgstr "" + +#: ../liveusb/gui.py:177 +msgid "Extracting live image to USB device..." +msgstr "" + +#: ../liveusb/gui.py:180 +#, python-format +msgid "Creating %d Mb persistent overlay..." +msgstr "" + +#: ../liveusb/gui.py:183 +msgid "Configuring and installing bootloader..." +msgstr "" + +#: ../liveusb/gui.py:187 +#, python-format +msgid "Complete! (%s)" +msgstr "" + +#: ../liveusb/gui.py:190 ../liveusb/gui.py:193 +msgid "LiveUSB creation failed!" +msgstr "" + +#: ../liveusb/gui.py:316 +#, python-format +msgid "Persistent Storage (%d Mb)" +msgstr "" + +#: ../liveusb/gui.py:334 +msgid "" +"Your device already contains a LiveOS.\n" +"If you continue, this will be overwritten." +msgstr "" + +#: ../liveusb/gui.py:337 +msgid "" +"Warning: Creating a new persistent overlay will delete your existing one." +msgstr "" + +#: ../liveusb/gui.py:339 +msgid "Press 'Create Live USB' again if you wish to continue." +msgstr "" + +#. The user has confirmed that they wish to overwrite their +#. existing Live OS. Here we delete it first, in order to +#. accurately calculate progress. +#: ../liveusb/gui.py:349 +msgid "Removing existing Live OS..." +msgstr "" + +#: ../liveusb/gui.py:383 +msgid "Download complete!" +msgstr "" + +#: ../liveusb/gui.py:387 +msgid "Download failed: " +msgstr "" + +#: ../liveusb/gui.py:388 +msgid "You can try again to resume your download" +msgstr "" + +#: ../liveusb/gui.py:392 +msgid "Select Live ISO" +msgstr "" + +#: ../liveusb/gui.py:399 +msgid "" +"Sorry, I'm having trouble encoding the filename of your livecd. You may " +"have better luck if you move your ISO to the root of your drive (ie: C:\)" +msgstr "" + +#: ../liveusb/gui.py:404 +#, python-format +msgid "ISO selected: %s" +msgstr "" + +#: ../liveusb/creator.py:146 +#, python-format +msgid "" +"There was a problem executing the following command: `%s`\n" +"A more detailed error log has been written to 'liveusb-creator.log'" +msgstr "" + +#: ../liveusb/creator.py:183 +msgid "Not enough free space on device." +msgstr "" + +#: ../liveusb/creator.py:190 +#, python-format +msgid "Creating %sMB persistent overlay" +msgstr "" + +#: ../liveusb/creator.py:226 +#, python-format +msgid "Unable to remove previous LiveOS: %s" +msgstr "" + +#: ../liveusb/creator.py:257 +#, python-format +msgid "Cannot find device %s" +msgstr "" + +#: ../liveusb/creator.py:306 +msgid "Unable to find any USB drives" +msgstr "" + +#: ../liveusb/creator.py:327 +#, python-format +msgid "Filesystem for %s unknown!" +msgstr "" + +#: ../liveusb/creator.py:335 +#, python-format +msgid "Unable to mount device: %s" +msgstr "" + +#: ../liveusb/creator.py:370 +#, python-format +msgid "Unknown filesystem for %s. Your device may need to be reformatted." +msgstr "" + +#: ../liveusb/creator.py:373 +#, python-format +msgid "Unsupported filesystem: %s" +msgstr "" + +#: ../liveusb/creator.py:400 +msgid "Unable to find LiveOS on ISO" +msgstr "" + +#: ../liveusb/creator.py:472 +msgid "Unable to find any removable devices" +msgstr "" + +#: ../liveusb/creator.py:479 +msgid "" +"Make sure your USB key is plugged in and formatted with the FAT filesystem" +msgstr "" + +#: ../liveusb/creator.py:482 +#, python-format +msgid "" +"Unsupported filesystem: %s\n" +"Please backup and format your USB key with the FAT filesystem." +msgstr "" + +#: ../liveusb/creator.py:558 +#, python-format +msgid "" +"Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file " +"before running this program." +msgstr ""
commit c622a3c5b0ca80991147e572fe110829c79751b5 Author: Luke Macken lmacken@redhat.com Date: Wed Aug 27 09:33:10 2008 -0400
Make our strings translatable
diff --git a/liveusb/creator.py b/liveusb/creator.py index 1507825..eacf06f 100755 --- a/liveusb/creator.py +++ b/liveusb/creator.py @@ -37,6 +37,7 @@ from StringIO import StringIO from stat import ST_SIZE
from liveusb.releases import releases +from liveusb import _
class LiveUSBError(Exception): @@ -142,9 +143,9 @@ class LiveUSBCreator(object): self.output.write(out + '\n' + err + '\n') if proc.returncode: self.write_log() - raise LiveUSBError("There was a problem executing the following " - "command: `%s`\nA more detailed error log has " - "been written to 'liveusb-creator.log'" % cmd) + raise LiveUSBError(_("There was a problem executing the following " + "command: `%s`\nA more detailed error log has " + "been written to 'liveusb-creator.log'" % cmd)) return proc
def verify_image(self, progress=None): @@ -179,14 +180,14 @@ class LiveUSBCreator(object): self.log.debug('overlaysize = %d' % overlaysize) self.totalsize = overlaysize + self.isosize if self.totalsize > freebytes: - raise LiveUSBError("Not enough free space on device.\n" - "%dMB ISO + %dMB overlay > %dMB free space" % - (self.isosize/1024**2, self.overlay, - freebytes/1024**2)) + raise LiveUSBError(_("Not enough free space on device." + + "\n%dMB ISO + %dMB overlay > %dMB free space" % + (self.isosize/1024**2, self.overlay, + freebytes/1024**2)))
def create_persistent_overlay(self): if self.overlay: - self.log.info("Creating %sMB persistent overlay" % self.overlay) + self.log.info(_("Creating %sMB persistent overlay" % self.overlay)) if self.fstype == 'vfat': # vfat apparently can't handle sparse files self.popen('dd if=/dev/zero of=%s count=%d bs=1M' @@ -222,8 +223,8 @@ class LiveUSBCreator(object): try: shutil.rmtree(path) except OSError, e: - raise LiveUSBError("Unable to remove previous LiveOS: %s" % - str(e)) + raise LiveUSBError(_("Unable to remove previous LiveOS: " + "%s" % str(e)))
def write_log(self): """ Write out our subprocess stdout/stderr to a log file """ @@ -253,7 +254,7 @@ class LiveUSBCreator(object):
def _set_drive(self, drive): if not self.drives.has_key(drive): - raise LiveUSBError("Cannot find device %s" % drive) + raise LiveUSBError(_("Cannot find device %s" % drive)) self.log.debug("%s selected: %s" % (drive, self.drives[drive])) self._drive = drive self.uuid = self.drives[drive]['uuid'] @@ -302,7 +303,7 @@ class LinuxLiveUSBCreator(LiveUSBCreator): break
if not len(self.drives): - raise LiveUSBError("Unable to find any USB drives") + raise LiveUSBError(_("Unable to find any USB drives"))
def _add_device(self, dev): mount = str(dev.GetProperty('volume.mount_point')) @@ -323,15 +324,15 @@ class LinuxLiveUSBCreator(LiveUSBCreator): self.dest = self.drive['mount'] if not self.dest: if not self.fstype: - raise LiveUSBError("Filesystem for %s unknown!" % - self.drive['device']) + raise LiveUSBError(_("Filesystem for %s unknown!" % + self.drive['device'])) try: self.log.debug("Calling %s.Mount('', %s, [], ...)" % ( self.drive['udi'], self.fstype)) self.drive['udi'].Mount('', self.fstype, [], dbus_interface='org.freedesktop.Hal.Device.Volume') except Exception, e: - raise LiveUSBError("Unable to mount device: %s" % str(e)) + raise LiveUSBError(_("Unable to mount device: %s" % str(e))) device = self.hal.FindDeviceStringMatch('block.device', self.drive['device']) device = self._get_device(device[0]) @@ -366,10 +367,11 @@ class LinuxLiveUSBCreator(LiveUSBCreator): def verify_filesystem(self): if self.fstype not in ('vfat', 'msdos', 'ext2', 'ext3'): if not self.fstype: - raise LiveUSBError("Unknown filesystem for %s. Your device " - "may need to be reformatted.") + raise LiveUSBError(_("Unknown filesystem for %s. Your device " + "may need to be reformatted.")) else: - raise LiveUSBError("Unsupported filesystem: %s" % self.fstype) + raise LiveUSBError(_("Unsupported filesystem: %s" % + self.fstype)) if self.drive['label']: self.label = self.drive['label'] else: @@ -395,7 +397,7 @@ class LinuxLiveUSBCreator(LiveUSBCreator): tmpliveos = os.path.join(tmpdir, 'LiveOS') try: if not os.path.isdir(tmpliveos): - raise LiveUSBError("Unable to find LiveOS on ISO") + raise LiveUSBError(_("Unable to find LiveOS on ISO")) liveos = os.path.join(self.dest, 'LiveOS') if not os.path.exists(liveos): os.mkdir(liveos) @@ -467,19 +469,19 @@ class WindowsLiveUSBCreator(LiveUSBCreator): 'device': drive, } if not len(self.drives): - raise LiveUSBError("Unable to find any removable devices") + raise LiveUSBError(_("Unable to find any removable devices"))
def verify_filesystem(self): import win32api, win32file, pywintypes try: vol = win32api.GetVolumeInformation(self.drive['device']) except Exception, e: - raise LiveUSBError("Make sure your USB key is plugged in and " - "formatted with the FAT filesystem") + raise LiveUSBError(_("Make sure your USB key is plugged in and " + "formatted with the FAT filesystem")) if vol[-1] not in ('FAT32', 'FAT'): - raise LiveUSBError("Unsupported filesystem: %s\nPlease backup and " - "format your USB key with the FAT filesystem." % - vol[-1]) + raise LiveUSBError(_("Unsupported filesystem: %s\nPlease backup " + "and format your USB key with the FAT " + "filesystem." % vol[-1])) self.fstype = 'vfat' if vol[0] == '': try: @@ -553,9 +555,9 @@ class WindowsLiveUSBCreator(LiveUSBCreator): cmd = cmd.split() tool = os.path.join('tools', '%s.exe' % cmd[0]) if not os.path.exists(tool): - raise LiveUSBError("Cannot find '%s'. Make sure to extract the " - "entire liveusb-creator zip file before running " - "this program.") + raise LiveUSBError(_("Cannot find '%s'. Make sure to extract the " + "entire liveusb-creator zip file before " + "running this program.")) return LiveUSBCreator.popen(self, ' '.join([tool] + cmd[1:]), creationflags=win32process.CREATE_NO_WINDOW, **kwargs) diff --git a/liveusb/gui.py b/liveusb/gui.py index 258d4dc..035ccc0 100755 --- a/liveusb/gui.py +++ b/liveusb/gui.py @@ -29,7 +29,7 @@ from time import sleep from datetime import datetime from PyQt4 import QtCore, QtGui
-from liveusb import LiveUSBCreator, LiveUSBError +from liveusb import LiveUSBCreator, LiveUSBError, _ from liveusb.dialog import Ui_Dialog from liveusb.releases import releases from liveusb.urlgrabber.grabber import URLGrabber, URLGrabError @@ -66,11 +66,11 @@ class ReleaseDownloader(QtCore.QThread): self.url = rel['url'] break else: - raise LiveUSBError("Unknown release: %s" % release) + raise LiveUSBError(_("Unknown release: %s" % release))
def run(self): self.emit(QtCore.SIGNAL("status(PyQt_PyObject)"), - "Downloading %s..." % os.path.basename(self.url)) + _("Downloading %s..." % os.path.basename(self.url))) grabber = URLGrabber(progress_obj=self.progress, proxies=self.proxies) try: iso = grabber.urlgrab(self.url, reget='simple') @@ -149,11 +149,11 @@ class LiveUSBThread(QtCore.QThread): def run(self): now = datetime.now() try: - self.status("Verifying filesystem...") + self.status(_("Verifying filesystem...")) self.live.verify_filesystem() if not self.live.drive['uuid'] and not self.live.label: - self.status("Error: Cannot set the label or obtain " - "the UUID of your device. Unable to continue.") + self.status(_("Error: Cannot set the label or obtain " + "the UUID of your device. Unable to continue.")) return
self.live.check_free_space() @@ -161,12 +161,12 @@ class LiveUSBThread(QtCore.QThread): # If the ISO looks familar, verify it's SHA1SUM if not self.parent.opts.noverify: if self.live.get_release_from_iso(): - self.status("Verifying SHA1 of LiveCD image...") + self.status(_("Verifying SHA1 of LiveCD image...")) if not self.live.verify_image(progress=self): - self.status("Error: The SHA1 of your Live CD is " - "invalid. You can run this program with " - "the --noverify argument to bypass this " - "verification check.") + self.status(_("Error: The SHA1 of your Live CD is " + "invalid. You can run this program with " + "the --noverify argument to bypass this " + "verification check.")) return
self.progress.set_data(size=self.live.totalsize, @@ -174,23 +174,23 @@ class LiveUSBThread(QtCore.QThread): freebytes=self.live.get_free_bytes) self.progress.start()
- self.status("Extracting live image to USB device...") + self.status(_("Extracting live image to USB device...")) self.live.extract_iso() if self.live.overlay: - self.status("Creating %d Mb persistent overlay..." % - self.live.overlay) + self.status(_("Creating %d Mb persistent overlay..." % + self.live.overlay)) self.live.create_persistent_overlay() - self.status("Configuring and installing bootloader...") + self.status(_("Configuring and installing bootloader...")) self.live.update_configs() self.live.install_bootloader() duration = str(datetime.now() - now).split('.')[0] - self.status("Complete! (%s)" % duration) + self.status(_("Complete! (%s)" % duration)) except LiveUSBError, e: self.status(str(e)) - self.status("LiveUSB creation failed!") + self.status(_("LiveUSB creation failed!")) except Exception, e: self.status(str(e)) - self.status("LiveUSB creation failed!") + self.status(_("LiveUSB creation failed!")) import traceback traceback.print_exc()
@@ -313,7 +313,7 @@ class LiveUSBDialog(QtGui.QDialog, Ui_Dialog): self.refreshDevicesButton.setEnabled(enabled)
def overlay_value(self, value): - self.overlayTitle.setTitle("Persistent Storage (%d Mb)" % value) + self.overlayTitle.setTitle(_("Persistent Storage (%d Mb)" % value))
def get_selected_drive(self): return str(self.driveBox.currentText()).split()[0] @@ -331,13 +331,13 @@ class LiveUSBDialog(QtGui.QDialog, Ui_Dialog):
if self.live.existing_liveos(): if not self.confirmed: - self.status("Your device already contains a LiveOS.\nIf you " - "continue, this will be overwritten.") + self.status(_("Your device already contains a LiveOS.\nIf you " + "continue, this will be overwritten.")) if self.live.existing_overlay() and self.overlaySlider.value(): - self.status("Warning: Creating a new persistent overlay " - "will delete your existing one.") - self.status("Press 'Create Live USB' again if you wish to " - "continue.") + self.status(_("Warning: Creating a new persistent overlay " + "will delete your existing one.")) + self.status(_("Press 'Create Live USB' again if you wish to " + "continue.")) self.confirmed = True self.live.unmount_device() self.enable_widgets(True) @@ -346,7 +346,7 @@ class LiveUSBDialog(QtGui.QDialog, Ui_Dialog): # The user has confirmed that they wish to overwrite their # existing Live OS. Here we delete it first, in order to # accurately calculate progress. - self.status("Removing existing Live OS...") + self.status(_("Removing existing Live OS...")) try: self.live.delete_liveos() except LiveUSBError, e: @@ -380,28 +380,28 @@ class LiveUSBDialog(QtGui.QDialog, Ui_Dialog): the error message. """ if os.path.exists(iso): - self.status("Download complete!") + self.status(_("Download complete!")) self.live.iso = iso self.live_thread.start() else: - self.status("Download failed: " + iso) - self.status("You can try again to resume your download") + self.status(_("Download failed: " + iso)) + self.status(_("You can try again to resume your download")) self.enable_widgets(True)
def selectfile(self): - isofile = QtGui.QFileDialog.getOpenFileName(self, "Select Live ISO", + isofile = QtGui.QFileDialog.getOpenFileName(self, _("Select Live ISO"), ".", "ISO (*.iso)" ) if isofile: try: self.live.iso = self._to_unicode(isofile) except Exception, e: self.live.log.error(str(e)) - self.status("Sorry, I'm having trouble encoding the filename " - "of your livecd. You may have better luck if " - "you move your ISO to the root of your drive " - "(ie: C:)") + self.status(_("Sorry, I'm having trouble encoding the filename " + "of your livecd. You may have better luck if " + "you move your ISO to the root of your drive " + "(ie: C:)"))
- self.live.log.info("ISO selected: %s" % repr(self.live.iso)) + self.live.log.info(_("ISO selected: %s" % repr(self.live.iso))) self.textEdit.append(os.path.basename(self.live.iso) + ' selected')
def terminate(self):
commit e88e621c97e899b3c5cb98b14a0b56f46816741f Author: Luke Macken lmacken@redhat.com Date: Wed Aug 27 09:32:48 2008 -0400
Add translation.ugettext (as _) in liveusb.__init__ module
diff --git a/liveusb/__init__.py b/liveusb/__init__.py index 36e25ea..6d98981 100644 --- a/liveusb/__init__.py +++ b/liveusb/__init__.py @@ -19,6 +19,11 @@
import os import sys +import gettext + +translation = gettext.translation('liveusb-creator', '/usr/share/locale', + fallback=True) +_ = translation.ugettext
from liveusb.creator import LiveUSBError
@@ -29,9 +34,9 @@ if sys.platform == "win32": LiveUSBCreator = WindowsLiveUSBCreator else: if os.getuid() != 0: - print >> sys.stderr, "You must run this application as root" + print >> sys.stderr, _("You must run this application as root") sys.exit(1) from liveusb.creator import LinuxLiveUSBCreator LiveUSBCreator = LinuxLiveUSBCreator
-__all__ = ["LiveUSBCreator", "LiveUSBError"] +__all__ = ("LiveUSBCreator", "LiveUSBError", "_")
commit f45ae9b6c76164a63c3f00023403f950c5d3a895 Author: Luke Macken lmacken@redhat.com Date: Wed Aug 27 09:31:42 2008 -0400
Add a po directory, along with a POTFILES.in
diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 0000000..691e83b --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,3 @@ +[encoding: UTF-8] +liveusb/gui.py +liveusb/creator.py
liveusb-creator@lists.stg.fedorahosted.org