From 09ba746a15cc3d223398e79c6fd2a4ae141a0f54 Mon Sep 17 00:00:00 2001 From: Guilherme Salgado Date: Fri, 25 May 2012 16:59:40 -0300 Subject: [PATCH 01/13] Fix LaunchpadCodeURLHandler so that it properly detects lp: URLs when the project name contains hyphens --- terminatorlib/plugins/url_handlers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terminatorlib/plugins/url_handlers.py b/terminatorlib/plugins/url_handlers.py index 6c1f75eb..436406e0 100644 --- a/terminatorlib/plugins/url_handlers.py +++ b/terminatorlib/plugins/url_handlers.py @@ -31,7 +31,7 @@ class LaunchpadCodeURLHandler(plugin.URLHandler): nameopen = "Open Launchpad branch" namecopy = "Copy branch URL" lpfilters = {} - lpfilters['project'] = '[a-z0-9]{1}[a-z0-9\.\-\+]+' + lpfilters['project'] = '[a-z0-9]{1}[a-z0-9+.-]+' lpfilters['group'] = '~%s' % lpfilters['project'] lpfilters['series'] = lpfilters['project'] lpfilters['branch'] = '[a-zA-Z0-9]{1}[a-zA-Z0-9_+@.-]+' From 383a4b614f779c0f3644e3cea616eeb95bfc7a6a Mon Sep 17 00:00:00 2001 From: Stephen Boddy Date: Sun, 24 Jun 2012 00:48:23 +0200 Subject: [PATCH 02/13] Fix titlebars not refreshing when using broadcast shortcut keys --- terminatorlib/terminal.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/terminatorlib/terminal.py b/terminatorlib/terminal.py index dd58fd9a..84759c5a 100755 --- a/terminatorlib/terminal.py +++ b/terminatorlib/terminal.py @@ -1627,12 +1627,15 @@ class Terminal(gtk.VBox): def key_broadcast_off(self): self.set_groupsend(None, self.terminator.groupsend_type['off']) + self.terminator.focus_changed(self) def key_broadcast_group(self): self.set_groupsend(None, self.terminator.groupsend_type['group']) + self.terminator.focus_changed(self) def key_broadcast_all(self): self.set_groupsend(None, self.terminator.groupsend_type['all']) + self.terminator.focus_changed(self) # End key events From b6a75be6077669b2696898049dde63859ca8812b Mon Sep 17 00:00:00 2001 From: Stephen Boddy Date: Mon, 25 Jun 2012 19:05:43 +0200 Subject: [PATCH 03/13] Fix the inability to drag the splitters --- terminatorlib/paned.py | 6 ++++++ terminatorlib/window.py | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/terminatorlib/paned.py b/terminatorlib/paned.py index 4272ac02..5ee13862 100755 --- a/terminatorlib/paned.py +++ b/terminatorlib/paned.py @@ -275,6 +275,12 @@ class Paned(Container): container.add(child) def new_size(self, widget, allocation): + if self.get_toplevel().set_pos_by_ratio: + self.set_position_by_ratio() + else: + self.set_position(self.get_position()) + + def set_position_by_ratio(self): self.set_pos(int(self.ratio*self.get_length())) def set_position(self, pos): diff --git a/terminatorlib/window.py b/terminatorlib/window.py index 50fe79c9..2d7ed1b2 100755 --- a/terminatorlib/window.py +++ b/terminatorlib/window.py @@ -37,6 +37,7 @@ class Window(Container, gtk.Window): losefocus_time = 0 position = None ignore_startup_show = None + set_pos_by_ratio = None zoom_data = None @@ -479,6 +480,7 @@ class Window(Container, gtk.Window): def rotate(self, widget, clockwise): """Rotate children in this window""" + self.set_pos_by_ratio = True maker = Factory() # collect all paned children in breadth-first order paned = [] @@ -494,6 +496,10 @@ class Window(Container, gtk.Window): p.rotate(widget, clockwise) self.show_all() widget.grab_focus() + + while gtk.events_pending(): + gtk.main_iteration_do(False) + self.set_pos_by_ratio = False def get_visible_terminals(self): """Walk down the widget tree to find all of the visible terminals. From cbb86c48c5858a12e7a85f96d066eeebac3485c9 Mon Sep 17 00:00:00 2001 From: Stephen Boddy Date: Mon, 25 Jun 2012 20:01:35 +0200 Subject: [PATCH 04/13] Spotted some unevenness in the initial position of new splits. This fixes it to 50:50 --- terminatorlib/paned.py | 7 +++++++ terminatorlib/window.py | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/terminatorlib/paned.py b/terminatorlib/paned.py index 5ee13862..abde04cb 100755 --- a/terminatorlib/paned.py +++ b/terminatorlib/paned.py @@ -43,6 +43,8 @@ class Paned(Container): container = VPaned() else: container = HPaned() + + self.get_toplevel().set_pos_by_ratio = True if not sibling: sibling = self.maker.make('terminal') @@ -60,6 +62,11 @@ class Paned(Container): container.add(terminal) self.show_all() + + while gtk.events_pending(): + gtk.main_iteration_do(False) + self.get_toplevel().set_pos_by_ratio = False + def add(self, widget, metadata=None): """Add a widget to the container""" diff --git a/terminatorlib/window.py b/terminatorlib/window.py index 2d7ed1b2..e770a0fa 100755 --- a/terminatorlib/window.py +++ b/terminatorlib/window.py @@ -419,6 +419,8 @@ class Window(Container, gtk.Window): container = maker.make('VPaned') else: container = maker.make('HPaned') + + self.set_pos_by_ratio = True if not sibling: sibling = maker.make('Terminal') @@ -434,6 +436,11 @@ class Window(Container, gtk.Window): for term in order: container.add(term) container.show_all() + + while gtk.events_pending(): + gtk.main_iteration_do(False) + self.set_pos_by_ratio = False + def zoom(self, widget, font_scale=True): """Zoom a terminal widget""" From d4b61768dc26e27df963126bbb30d8855e73b924 Mon Sep 17 00:00:00 2001 From: Stephen Boddy Date: Mon, 25 Jun 2012 21:24:41 +0200 Subject: [PATCH 05/13] Redistribute code for splitters/terms. It's AWESOME :-) --- terminatorlib/paned.py | 86 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/terminatorlib/paned.py b/terminatorlib/paned.py index 4272ac02..b3900f9e 100755 --- a/terminatorlib/paned.py +++ b/terminatorlib/paned.py @@ -113,6 +113,90 @@ class Paned(Container): except TypeError: err('Paned::add: %s has no signal resize-term' % widget) + def on_button_press(self, widget, event): + """Handle button presses on a Pane""" + if event.button == 1 and event.type == gtk.gdk._2BUTTON_PRESS: + if event.state & gtk.gdk.MOD4_MASK == gtk.gdk.MOD4_MASK: + recurse_up=True + else: + recurse_up=False + + if event.state & gtk.gdk.SHIFT_MASK == gtk.gdk.SHIFT_MASK: + recurse_down=True + else: + recurse_down=False + + self.do_redistribute(recurse_up, recurse_down) + while gtk.events_pending(): + gtk.main_iteration_do(False) + self.do_redistribute(recurse_up, recurse_down) + return True + else: + return False + + def do_redistribute(self, recurse_up=False, recurse_down=False): + """Evenly divide available space between sibling panes""" + #1 Find highest ancestor of the same type => ha + highest_ancestor = self + while type(highest_ancestor.get_parent()) == type(highest_ancestor): + highest_ancestor = highest_ancestor.get_parent() + + # (1b) If Super modifier, redistribute higher sections too + if recurse_up: + grandfather=highest_ancestor.get_parent() + if grandfather != self.get_toplevel(): + grandfather.do_redistribute(recurse_up, recurse_down) + + gobject.idle_add(highest_ancestor._do_redistribute, recurse_up, recurse_down) + while gtk.events_pending(): + gtk.main_iteration_do(False) + gobject.idle_add(highest_ancestor._do_redistribute, recurse_up, recurse_down) + + def _do_redistribute(self, recurse_up=False, recurse_down=False): + maker = Factory() + #2 Make a list of self + all children of same type + tree = [self, [], 0, None] + toproc = [tree] + number_splits = 1 + while toproc: + curr = toproc.pop(0) + for child in curr[0].get_children(): + if type(child) == type(curr[0]): + childset = [child, [], 0, curr] + curr[1].append(childset) + toproc.append(childset) + number_splits = number_splits+1 + else: + curr[1].append([None,[], 1, None]) + p = curr + while p: + p[2] = p[2] + 1 + p = p[3] + # (1c) If Shift modifier, redistribute lower sections too + if recurse_down and \ + (maker.isinstance(child, 'VPaned') or \ + maker.isinstance(child, 'HPaned')): + gobject.idle_add(child.do_redistribute, False, True) + + #3 Get ancestor x/y => a, and handle size => hs + avail_pixels=self.get_length() + handle_size = self.style_get_property('handle-size') + #4 Math! eek (a - (n * hs)) / (n + 1) = single size => s + single_size = (avail_pixels - (number_splits * handle_size)) / (number_splits + 1) + arr_sizes = [single_size]*(number_splits+1) + for i in range(avail_pixels % (number_splits + 1)): + arr_sizes[i] = arr_sizes[i] + 1 + #5 Descend down setting the handle position to s + # (Has to handle nesting properly) + toproc = [tree] + while toproc: + curr = toproc.pop(0) + for child in curr[1]: + toproc.append(child) + if curr[1].index(child) == 0: + curr[0].set_position((child[2]*single_size)+((child[2]-1)*handle_size)) + gobject.idle_add(curr[0].set_position, child[2]*single_size) + def remove(self, widget): """Remove a widget from the container""" gtk.Paned.remove(self, widget) @@ -288,6 +372,7 @@ class HPaned(Paned, gtk.HPaned): Paned.__init__(self) gtk.HPaned.__init__(self) self.register_signals(HPaned) + self.cnxids.new(self, 'button-press-event', self.on_button_press) def get_length(self): return(self.allocation.width) @@ -302,6 +387,7 @@ class VPaned(Paned, gtk.VPaned): Paned.__init__(self) gtk.VPaned.__init__(self) self.register_signals(VPaned) + self.cnxids.new(self, 'button-press-event', self.on_button_press) def get_length(self): return(self.allocation.height) From b4ef645a2f669142d61b54defd2abc87cbf01c5d Mon Sep 17 00:00:00 2001 From: Stephen Boddy Date: Tue, 26 Jun 2012 20:23:39 +0200 Subject: [PATCH 06/13] Add shortcuts (no defaults) to insert the group menu numbers. --- terminatorlib/config.py | 4 +++- terminatorlib/prefseditor.py | 4 +++- terminatorlib/terminal.py | 6 ++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/terminatorlib/config.py b/terminatorlib/config.py index 30e6ebcf..ed11a03d 100755 --- a/terminatorlib/config.py +++ b/terminatorlib/config.py @@ -161,7 +161,9 @@ DEFAULTS = { 'new_terminator' : 'i', 'broadcast_off' : '', 'broadcast_group' : '', - 'broadcast_all' : '' + 'broadcast_all' : '', + 'insert_number' : '', + 'insert_padded' : '' }, 'profiles': { 'default': { diff --git a/terminatorlib/prefseditor.py b/terminatorlib/prefseditor.py index 3869012d..4e01dfd8 100755 --- a/terminatorlib/prefseditor.py +++ b/terminatorlib/prefseditor.py @@ -126,7 +126,9 @@ class PrefsEditor: 'new_terminator' : 'Spawn a new Terminator process', 'broadcast_off' : 'Don\'t broadcast key presses', 'broadcast_group' : 'Broadcast key presses to group', - 'broadcast_all' : 'Broadcast key events to all' + 'broadcast_all' : 'Broadcast key events to all', + 'insert_number' : 'Insert terminal number', + 'insert_padded' : 'Insert zero padded terminal number' } def __init__ (self, term): diff --git a/terminatorlib/terminal.py b/terminatorlib/terminal.py index dd58fd9a..8ec08da0 100755 --- a/terminatorlib/terminal.py +++ b/terminatorlib/terminal.py @@ -1634,6 +1634,12 @@ class Terminal(gtk.VBox): def key_broadcast_all(self): self.set_groupsend(None, self.terminator.groupsend_type['all']) + def key_insert_number(self): + self.emit('enumerate', False) + + def key_insert_padded(self): + self.emit('enumerate', True) + # End key events gobject.type_register(Terminal) From e5eda24a218b82979d27cf009e6b210127390188 Mon Sep 17 00:00:00 2001 From: Stephen Boddy Date: Tue, 26 Jun 2012 20:29:54 +0200 Subject: [PATCH 07/13] Add shortcut (no default) to edit window title. --- terminatorlib/config.py | 3 ++- terminatorlib/prefseditor.py | 3 ++- terminatorlib/terminal.py | 31 +++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/terminatorlib/config.py b/terminatorlib/config.py index 30e6ebcf..3b0c6d77 100755 --- a/terminatorlib/config.py +++ b/terminatorlib/config.py @@ -161,7 +161,8 @@ DEFAULTS = { 'new_terminator' : 'i', 'broadcast_off' : '', 'broadcast_group' : '', - 'broadcast_all' : '' + 'broadcast_all' : '', + 'edit_window_title': '' }, 'profiles': { 'default': { diff --git a/terminatorlib/prefseditor.py b/terminatorlib/prefseditor.py index 3869012d..8267893f 100755 --- a/terminatorlib/prefseditor.py +++ b/terminatorlib/prefseditor.py @@ -126,7 +126,8 @@ class PrefsEditor: 'new_terminator' : 'Spawn a new Terminator process', 'broadcast_off' : 'Don\'t broadcast key presses', 'broadcast_group' : 'Broadcast key presses to group', - 'broadcast_all' : 'Broadcast key events to all' + 'broadcast_all' : 'Broadcast key events to all', + 'edit_window_title': 'Edit window title' } def __init__ (self, term): diff --git a/terminatorlib/terminal.py b/terminatorlib/terminal.py index dd58fd9a..5b97e248 100755 --- a/terminatorlib/terminal.py +++ b/terminatorlib/terminal.py @@ -1634,6 +1634,37 @@ class Terminal(gtk.VBox): def key_broadcast_all(self): self.set_groupsend(None, self.terminator.groupsend_type['all']) + def key_edit_window_title(self): + window = self.get_toplevel() + dialog = gtk.Dialog(_('Rename Window'), window, + gtk.DIALOG_MODAL, + ( gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, + gtk.STOCK_OK, gtk.RESPONSE_ACCEPT )) + dialog.set_default_response(gtk.RESPONSE_ACCEPT) + dialog.set_has_separator(False) + dialog.set_resizable(False) + dialog.set_border_width(8) + + label = gtk.Label(_('Enter a new title for the Terminator window...')) + name = gtk.Entry() + name.set_activates_default(True) + if window.title.text != self.vte.get_window_title(): + name.set_text(self.get_toplevel().title.text) + + dialog.vbox.pack_start(label, False, False, 6) + dialog.vbox.pack_start(name, False, False, 6) + + dialog.show_all() + res = dialog.run() + if res == gtk.RESPONSE_ACCEPT: + if name.get_text(): + window.title.force_title(None) + window.title.force_title(name.get_text()) + else: + window.title.force_title(None) + dialog.destroy() + return + # End key events gobject.type_register(Terminal) From 73546607882d6de8cbf256fa2ff2e1f214c6f62e Mon Sep 17 00:00:00 2001 From: Stephen Boddy Date: Wed, 27 Jun 2012 16:58:56 +0200 Subject: [PATCH 08/13] I think this fixes most of the strangeness with the clicked splitter not moving properly, but I think it can still be triggered occasionally. I'm stumped. --- terminatorlib/paned.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/terminatorlib/paned.py b/terminatorlib/paned.py index b3900f9e..3b449ed0 100755 --- a/terminatorlib/paned.py +++ b/terminatorlib/paned.py @@ -126,10 +126,12 @@ class Paned(Container): else: recurse_down=False - self.do_redistribute(recurse_up, recurse_down) - while gtk.events_pending(): - gtk.main_iteration_do(False) - self.do_redistribute(recurse_up, recurse_down) + # FIXME: These idle events are creating a lot of weird issues + for i in range(3): + while gtk.events_pending(): + gtk.main_iteration_do(False) + self.do_redistribute(recurse_up, recurse_down) + return True else: return False From bc9539f187d81fe3e191dacf292b09885eec8ab8 Mon Sep 17 00:00:00 2001 From: Stephen Boddy Date: Thu, 28 Jun 2012 15:38:01 +0200 Subject: [PATCH 09/13] Adds ability to override the WMCLASS_NAME of a window. --- doc/terminator.1 | 3 +++ terminatorlib/optionparse.py | 2 ++ terminatorlib/window.py | 3 +++ 3 files changed, 8 insertions(+) diff --git a/doc/terminator.1 b/doc/terminator.1 index 4b746484..da6217ea 100644 --- a/doc/terminator.1 +++ b/doc/terminator.1 @@ -56,6 +56,9 @@ Set the terminal's working directory .B \-r, \-\-role=ROLE Set a custom WM_WINDOW_ROLE property on the window .TP +.B \-c, \-\-classname=CLASSNAME +Set a custom name (WM_CLASS) property on the window +.TP .B \-l, \-\-layout=LAYOUT Start Terminator with a specific layout. The argument here is the name of a saved layout. diff --git a/terminatorlib/optionparse.py b/terminatorlib/optionparse.py index 13a2a09d..0ab23ba2 100755 --- a/terminatorlib/optionparse.py +++ b/terminatorlib/optionparse.py @@ -66,6 +66,8 @@ command to execute inside the terminal, and its arguments')) dest='working_directory', help=_('Set the working directory')) parser.add_option('-r', '--role', dest='role', help=_('Set a custom \ WM_WINDOW_ROLE property on the window')) + parser.add_option('-c', '--classname', dest='classname', help=_('Set a \ +custom name (WM_CLASS) property on the window')) parser.add_option('-l', '--layout', dest='layout', help=_('Select a layout')) parser.add_option('-p', '--profile', dest='profile', help=_('Use a \ different profile as the default')) diff --git a/terminatorlib/window.py b/terminatorlib/window.py index 50fe79c9..cb4be4f4 100755 --- a/terminatorlib/window.py +++ b/terminatorlib/window.py @@ -75,6 +75,9 @@ class Window(Container, gtk.Window): if options.role is not None: self.set_role(options.role) + + if options.classname is not None: + self.set_wmclass(options.classname, self.wmclass_class) if options.geometry is not None: if not self.parse_geometry(options.geometry): From 54b4223c4d4de9cb3e56dca8604a7621bf44ca94 Mon Sep 17 00:00:00 2001 From: Stephen Boddy Date: Thu, 28 Jun 2012 18:07:00 +0200 Subject: [PATCH 10/13] Add some nice window icon setting abilities, plus I noticed a few options were missing from the manpage. --- doc/terminator.1 | 9 ++++++++ terminatorlib/optionparse.py | 2 ++ terminatorlib/window.py | 41 +++++++++++++++++++++++++++++------- 3 files changed, 44 insertions(+), 8 deletions(-) diff --git a/doc/terminator.1 b/doc/terminator.1 index da6217ea..1a7294d2 100644 --- a/doc/terminator.1 +++ b/doc/terminator.1 @@ -63,6 +63,15 @@ Set a custom name (WM_CLASS) property on the window Start Terminator with a specific layout. The argument here is the name of a saved layout. .TP +.B \-p, \-\-profile=PROFILE +Use a different profile as the default +.TP +.B \-i, \-\-icon=FORCEDICON +Set a custom icon for the window (by file or name) +.TP +.B \-u, \-\-no-dbus +Disable DBus +.TP .B \-d, \-\-debug Enable debugging output (please use this when reporting bugs). This can be specified twice to enable a built-in python debugging server. diff --git a/terminatorlib/optionparse.py b/terminatorlib/optionparse.py index 0ab23ba2..7d4b3bff 100755 --- a/terminatorlib/optionparse.py +++ b/terminatorlib/optionparse.py @@ -71,6 +71,8 @@ custom name (WM_CLASS) property on the window')) parser.add_option('-l', '--layout', dest='layout', help=_('Select a layout')) parser.add_option('-p', '--profile', dest='profile', help=_('Use a \ different profile as the default')) + parser.add_option('-i', '--icon', dest='forcedicon', help=_('Set a custom \ +icon for the window (by file or name)')) parser.add_option('-u', '--no-dbus', action='store_true', dest='nodbus', help=_('Disable DBus')) parser.add_option('-d', '--debug', action='count', dest='debug', diff --git a/terminatorlib/window.py b/terminatorlib/window.py index cb4be4f4..0807e33d 100755 --- a/terminatorlib/window.py +++ b/terminatorlib/window.py @@ -60,7 +60,7 @@ class Window(Container, gtk.Window): self.register_signals(Window) self.set_property('allow-shrink', True) - self.apply_icon() + icon_to_apply='' self.register_callbacks() self.apply_config() @@ -78,12 +78,16 @@ class Window(Container, gtk.Window): if options.classname is not None: self.set_wmclass(options.classname, self.wmclass_class) + + if options.forcedicon is not None: + icon_to_apply = options.forcedicon if options.geometry is not None: if not self.parse_geometry(options.geometry): err('Window::__init__: Unable to parse geometry: %s' % options.geometry) + self.apply_icon(icon_to_apply) self.pending_set_rough_geometry_hint = False def do_get_property(self, prop): @@ -158,15 +162,36 @@ class Window(Container, gtk.Window): else: self.set_iconified(hidden) - def apply_icon(self): + def apply_icon(self, requested_icon): """Set the window icon""" icon_theme = gtk.IconTheme() - - try: - icon = icon_theme.load_icon(APP_NAME, 48, 0) - except (NameError, gobject.GError): - dbg('Unable to load 48px Terminator icon') - icon = self.render_icon(gtk.STOCK_DIALOG_INFO, gtk.ICON_SIZE_BUTTON) + icon = None + + if requested_icon: + try: + self.set_icon_from_file(requested_icon) + icon = self.get_icon() + except (NameError, gobject.GError): + dbg('Unable to load 48px %s icon as file' % (repr(requested_icon))) + + if requested_icon and icon is None: + try: + icon = icon_theme.load_icon(requested_icon, 48, 0) + except (NameError, gobject.GError): + dbg('Unable to load 48px %s icon' % (repr(requested_icon))) + + if icon is None: + try: + icon = icon_theme.load_icon(self.wmclass_name, 48, 0) + except (NameError, gobject.GError): + dbg('Unable to load 48px %s icon' % (self.wmclass_name)) + + if icon is None: + try: + icon = icon_theme.load_icon(APP_NAME, 48, 0) + except (NameError, gobject.GError): + dbg('Unable to load 48px Terminator icon') + icon = self.render_icon(gtk.STOCK_DIALOG_INFO, gtk.ICON_SIZE_BUTTON) self.set_icon(icon) From 51d27920cbbae4d0ac3a2e0f45bd383f05dfea79 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of gnome-terminator <> Date: Wed, 11 Jul 2012 05:12:53 +0000 Subject: [PATCH 11/13] Launchpad automatic translations update. --- po/ar.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/ar.po b/po/ar.po index 61965f9c..347444d6 100644 --- a/po/ar.po +++ b/po/ar.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: terminator\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-08-21 01:31+0100\n" -"PO-Revision-Date: 2011-05-10 15:42+0000\n" -"Last-Translator: boracasli \n" +"PO-Revision-Date: 2012-07-10 19:05+0000\n" +"Last-Translator: Youssef Habri \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-24 10:30+0000\n" -"X-Generator: Launchpad (build 15288)\n" +"X-Launchpad-Export-Date: 2012-07-11 05:12+0000\n" +"X-Generator: Launchpad (build 15593)\n" #: ../data/terminator.desktop.in.h:1 msgid "Multiple terminals in one window" @@ -23,7 +23,7 @@ msgstr "عدة طرفيات في نافذة واحدة" #: ../data/terminator.desktop.in.h:2 msgid "Terminator" -msgstr "الماحي" +msgstr "الطرفية" #: ../terminatorlib/container.py:149 msgid "Close?" @@ -47,7 +47,7 @@ msgstr "" #: ../terminatorlib/encoding.py:35 msgid "Current Locale" -msgstr "المحلية الحالية" +msgstr "اللغة الحالية" #: ../terminatorlib/encoding.py:36 ../terminatorlib/encoding.py:49 #: ../terminatorlib/encoding.py:68 ../terminatorlib/encoding.py:91 From 87475d5a260e54feadaed2cbec69d7223d2b4fe7 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of gnome-terminator <> Date: Mon, 16 Jul 2012 05:11:38 +0000 Subject: [PATCH 12/13] Launchpad automatic translations update. --- po/la.po | 529 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 529 insertions(+) create mode 100644 po/la.po diff --git a/po/la.po b/po/la.po new file mode 100644 index 00000000..54fd197b --- /dev/null +++ b/po/la.po @@ -0,0 +1,529 @@ +# Latin translation for terminator +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the terminator package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: terminator\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-08-21 01:31+0100\n" +"PO-Revision-Date: 2012-07-15 14:09+0000\n" +"Last-Translator: Janosch Richter \n" +"Language-Team: Latin \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-16 05:11+0000\n" +"X-Generator: Launchpad (build 15614)\n" + +#: ../data/terminator.desktop.in.h:1 +msgid "Multiple terminals in one window" +msgstr "" + +#: ../data/terminator.desktop.in.h:2 +msgid "Terminator" +msgstr "" + +#: ../terminatorlib/container.py:149 +msgid "Close?" +msgstr "" + +#: ../terminatorlib/container.py:156 +msgid "Close _Terminals" +msgstr "" + +#: ../terminatorlib/container.py:158 +msgid "Close multiple terminals?" +msgstr "" + +#: ../terminatorlib/container.py:161 +#, python-format +msgid "" +"This %s has several terminals open. Closing the %s will also close all " +"terminals within it." +msgstr "" + +#: ../terminatorlib/encoding.py:35 +msgid "Current Locale" +msgstr "" + +#: ../terminatorlib/encoding.py:36 ../terminatorlib/encoding.py:49 +#: ../terminatorlib/encoding.py:68 ../terminatorlib/encoding.py:91 +#: ../terminatorlib/encoding.py:102 +msgid "Western" +msgstr "" + +#: ../terminatorlib/encoding.py:37 ../terminatorlib/encoding.py:69 +#: ../terminatorlib/encoding.py:81 ../terminatorlib/encoding.py:100 +msgid "Central European" +msgstr "" + +#: ../terminatorlib/encoding.py:38 +msgid "South European" +msgstr "" + +#: ../terminatorlib/encoding.py:39 ../terminatorlib/encoding.py:47 +#: ../terminatorlib/encoding.py:107 +msgid "Baltic" +msgstr "" + +#. [False, "JOHAB", _("Korean") ], +#: ../terminatorlib/encoding.py:40 ../terminatorlib/encoding.py:70 +#: ../terminatorlib/encoding.py:76 ../terminatorlib/encoding.py:78 +#: ../terminatorlib/encoding.py:83 ../terminatorlib/encoding.py:101 +msgid "Cyrillic" +msgstr "" + +#: ../terminatorlib/encoding.py:41 ../terminatorlib/encoding.py:73 +#: ../terminatorlib/encoding.py:80 ../terminatorlib/encoding.py:106 +msgid "Arabic" +msgstr "Arabica" + +#: ../terminatorlib/encoding.py:42 ../terminatorlib/encoding.py:86 +#: ../terminatorlib/encoding.py:103 +msgid "Greek" +msgstr "Lingua Graeca" + +#: ../terminatorlib/encoding.py:43 +msgid "Hebrew Visual" +msgstr "" + +#: ../terminatorlib/encoding.py:44 ../terminatorlib/encoding.py:72 +#: ../terminatorlib/encoding.py:89 ../terminatorlib/encoding.py:105 +msgid "Hebrew" +msgstr "Lingua Hebraica" + +#: ../terminatorlib/encoding.py:45 ../terminatorlib/encoding.py:71 +#: ../terminatorlib/encoding.py:93 ../terminatorlib/encoding.py:104 +msgid "Turkish" +msgstr "Lingua Turcica" + +#: ../terminatorlib/encoding.py:46 +msgid "Nordic" +msgstr "" + +#: ../terminatorlib/encoding.py:48 +msgid "Celtic" +msgstr "" + +#: ../terminatorlib/encoding.py:50 ../terminatorlib/encoding.py:92 +msgid "Romanian" +msgstr "Lingua Dacoromana" + +#. [False, "UTF-7", _("Unicode") ], +#: ../terminatorlib/encoding.py:52 +msgid "Unicode" +msgstr "Unicode" + +#. [False, "UTF-16", _("Unicode") ], +#. [False, "UCS-2", _("Unicode") ], +#. [False, "UCS-4", _("Unicode") ], +#: ../terminatorlib/encoding.py:56 +msgid "Armenian" +msgstr "" + +#: ../terminatorlib/encoding.py:57 ../terminatorlib/encoding.py:58 +#: ../terminatorlib/encoding.py:62 +msgid "Chinese Traditional" +msgstr "" + +#: ../terminatorlib/encoding.py:59 +msgid "Cyrillic/Russian" +msgstr "" + +#: ../terminatorlib/encoding.py:60 ../terminatorlib/encoding.py:74 +#: ../terminatorlib/encoding.py:95 +msgid "Japanese" +msgstr "Lingua Iaponica" + +#: ../terminatorlib/encoding.py:61 ../terminatorlib/encoding.py:75 +#: ../terminatorlib/encoding.py:98 +msgid "Korean" +msgstr "Lingua Coreana" + +#: ../terminatorlib/encoding.py:63 ../terminatorlib/encoding.py:64 +#: ../terminatorlib/encoding.py:65 ../terminatorlib/encoding.py:67 +msgid "Chinese Simplified" +msgstr "" + +#: ../terminatorlib/encoding.py:66 +msgid "Georgian" +msgstr "" + +#: ../terminatorlib/encoding.py:79 ../terminatorlib/encoding.py:94 +msgid "Cyrillic/Ukrainian" +msgstr "" + +#: ../terminatorlib/encoding.py:82 +msgid "Croatian" +msgstr "Lingua Croatica" + +#: ../terminatorlib/encoding.py:84 +msgid "Hindi" +msgstr "" + +#: ../terminatorlib/encoding.py:85 +msgid "Persian" +msgstr "" + +#: ../terminatorlib/encoding.py:87 +msgid "Gujarati" +msgstr "" + +#: ../terminatorlib/encoding.py:88 +msgid "Gurmukhi" +msgstr "" + +#: ../terminatorlib/encoding.py:90 +msgid "Icelandic" +msgstr "" + +#: ../terminatorlib/encoding.py:96 ../terminatorlib/encoding.py:99 +#: ../terminatorlib/encoding.py:108 +msgid "Vietnamese" +msgstr "" + +#: ../terminatorlib/encoding.py:97 +msgid "Thai" +msgstr "" + +#: ../terminatorlib/notebook.py:278 +msgid "tab" +msgstr "" + +#: ../terminatorlib/notebook.py:439 +msgid "Close Tab" +msgstr "" + +#: ../terminatorlib/optionparse.py:47 +msgid "Display program version" +msgstr "" + +#: ../terminatorlib/optionparse.py:49 +msgid "Maximise the window" +msgstr "" + +#: ../terminatorlib/optionparse.py:51 +msgid "Make the window fill the screen" +msgstr "" + +#: ../terminatorlib/optionparse.py:53 +msgid "Disable window borders" +msgstr "" + +#: ../terminatorlib/optionparse.py:55 +msgid "Hide the window at startup" +msgstr "" + +#: ../terminatorlib/optionparse.py:56 +msgid "Specify a title for the window" +msgstr "" + +#: ../terminatorlib/optionparse.py:58 +msgid "Set the preferred size and position of the window (see X man page)" +msgstr "" + +#: ../terminatorlib/optionparse.py:60 +msgid "Specify a command to execute inside the terminal" +msgstr "" + +#: ../terminatorlib/optionparse.py:63 +msgid "" +"Use the rest of the command line as a command to execute inside the " +"terminal, and its arguments" +msgstr "" + +#: ../terminatorlib/optionparse.py:66 +msgid "Set the working directory" +msgstr "" + +#: ../terminatorlib/optionparse.py:67 +msgid "Set a custom WM_WINDOW_ROLE property on the window" +msgstr "" + +#: ../terminatorlib/optionparse.py:69 +msgid "Select a layout" +msgstr "" + +#: ../terminatorlib/optionparse.py:70 +msgid "Use a different profile as the default" +msgstr "" + +#: ../terminatorlib/optionparse.py:73 +msgid "Disable DBus" +msgstr "" + +#: ../terminatorlib/optionparse.py:75 +msgid "Enable debugging information (twice for debug server)" +msgstr "" + +#: ../terminatorlib/optionparse.py:77 +msgid "Comma separated list of classes to limit debugging to" +msgstr "" + +#: ../terminatorlib/optionparse.py:79 +msgid "Comma separated list of methods to limit debugging to" +msgstr "" + +#: ../terminatorlib/plugins/activitywatch.py:22 +msgid "ActivityWatch plugin unavailable: please install python-notify" +msgstr "" + +#: ../terminatorlib/plugins/activitywatch.py:45 +msgid "Watch for activity" +msgstr "" + +#: ../terminatorlib/plugins/activitywatch.py:48 +msgid "Stop watching for activity" +msgstr "" + +#: ../terminatorlib/plugins/activitywatch.py:106 +msgid "Watch for silence" +msgstr "" + +#: ../terminatorlib/plugins/activitywatch.py:109 +msgid "Stop watching for silence" +msgstr "" + +#: ../terminatorlib/plugins/custom_commands.py:50 +msgid "Custom Commands" +msgstr "" + +#: ../terminatorlib/plugins/custom_commands.py:106 +msgid "Custom Commands Configuration" +msgstr "" + +#: ../terminatorlib/plugins/custom_commands.py:238 +msgid "New Command" +msgstr "" + +#: ../terminatorlib/plugins/custom_commands.py:248 +msgid "Enabled:" +msgstr "" + +#: ../terminatorlib/plugins/custom_commands.py:254 +msgid "Name:" +msgstr "" + +#: ../terminatorlib/plugins/custom_commands.py:260 +msgid "Command:" +msgstr "" + +#: ../terminatorlib/plugins/custom_commands.py:296 +#: ../terminatorlib/plugins/custom_commands.py:406 +msgid "You need to define a name and command" +msgstr "" + +#: ../terminatorlib/plugins/custom_commands.py:313 +#: ../terminatorlib/plugins/custom_commands.py:425 +#, python-format +msgid "Name *%s* already exist" +msgstr "" + +#: ../terminatorlib/plugins/terminalshot.py:28 +msgid "Terminal screenshot" +msgstr "" + +#: ../terminatorlib/prefseditor.py:942 ../terminatorlib/prefseditor.py:947 +msgid "New Profile" +msgstr "" + +#: ../terminatorlib/prefseditor.py:987 ../terminatorlib/prefseditor.py:992 +msgid "New Layout" +msgstr "" + +#. Label +#: ../terminatorlib/searchbar.py:50 +msgid "Search:" +msgstr "" + +#: ../terminatorlib/searchbar.py:66 +msgid "Close Search bar" +msgstr "" + +#. Next Button +#: ../terminatorlib/searchbar.py:71 +msgid "Next" +msgstr "" + +#. Previous Button +#: ../terminatorlib/searchbar.py:77 +msgid "Prev" +msgstr "" + +#: ../terminatorlib/searchbar.py:124 +msgid "Searching scrollback" +msgstr "" + +#: ../terminatorlib/searchbar.py:135 ../terminatorlib/searchbar.py:156 +msgid "No more results" +msgstr "" + +#: ../terminatorlib/searchbar.py:171 +msgid "Found at row" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:51 +msgid "_Send email to..." +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:52 +msgid "_Copy email address" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:54 +msgid "Ca_ll VoIP address" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:55 +msgid "_Copy VoIP address" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:57 +msgid "_Open link" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:58 +msgid "_Copy address" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:86 +msgid "Split H_orizontally" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:96 +msgid "Split V_ertically" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:106 +msgid "Open _Tab" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:112 +msgid "Open _Debug Tab" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:126 +msgid "_Zoom terminal" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:130 +msgid "Ma_ximise terminal" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:136 +msgid "_Restore all terminals" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:143 +msgid "Grouping" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:150 +msgid "Show _scrollbar" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:156 +msgid "_Preferences" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:163 +msgid "Profiles" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:207 +msgid "Encodings" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:222 +msgid "Default" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:225 +msgid "User defined" +msgstr "" + +#: ../terminatorlib/terminal_popup_menu.py:241 +msgid "Other Encodings" +msgstr "" + +#: ../terminatorlib/terminal.py:372 +msgid "New group..." +msgstr "" + +#: ../terminatorlib/terminal.py:377 +msgid "None" +msgstr "" + +#: ../terminatorlib/terminal.py:393 +#, python-format +msgid "Remove group %s" +msgstr "" + +#: ../terminatorlib/terminal.py:398 +msgid "G_roup all in tab" +msgstr "" + +#: ../terminatorlib/terminal.py:403 +msgid "Ungr_oup all in tab" +msgstr "" + +#: ../terminatorlib/terminal.py:408 +msgid "Remove all groups" +msgstr "" + +#: ../terminatorlib/terminal.py:415 +#, python-format +msgid "Close group %s" +msgstr "" + +#: ../terminatorlib/terminal.py:424 +msgid "Broadcast all" +msgstr "" + +#: ../terminatorlib/terminal.py:425 +msgid "Broadcast group" +msgstr "" + +#: ../terminatorlib/terminal.py:426 +msgid "Broadcast off" +msgstr "" + +#: ../terminatorlib/terminal.py:439 +msgid "Split to this group" +msgstr "" + +#: ../terminatorlib/terminal.py:444 +msgid "Autoclean groups" +msgstr "" + +#: ../terminatorlib/terminal.py:451 +msgid "Insert terminal number" +msgstr "" + +#: ../terminatorlib/terminal.py:455 +msgid "Insert padded terminal number" +msgstr "" + +#: ../terminatorlib/terminal.py:1193 +msgid "Unable to find a shell" +msgstr "" + +#: ../terminatorlib/terminal.py:1210 +msgid "Unable to start shell:" +msgstr "" + +#: ../terminatorlib/window.py:242 +msgid "window" +msgstr "" + +#. FIXME: Why isn't this being done by Terminator() ? +#: ../terminatorlib/window.py:612 +msgid "All" +msgstr "" + +#: ../terminatorlib/window.py:633 +#, python-format +msgid "Tab %d" +msgstr "" From 505d04b9d324be1b03fa9d028e79a030c2a7fa64 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of gnome-terminator <> Date: Wed, 18 Jul 2012 05:09:52 +0000 Subject: [PATCH 13/13] Launchpad automatic translations update. --- po/zh_CN.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/zh_CN.po b/po/zh_CN.po index 5b9c092a..9cbefc72 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: terminator\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-08-21 01:31+0100\n" -"PO-Revision-Date: 2012-05-27 05:41+0000\n" +"PO-Revision-Date: 2012-07-17 10:14+0000\n" "Last-Translator: Zhaofeng Li \n" "Language-Team: Simplified Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-28 05:11+0000\n" -"X-Generator: Launchpad (build 15288)\n" +"X-Launchpad-Export-Date: 2012-07-18 05:09+0000\n" +"X-Generator: Launchpad (build 15637)\n" #: ../data/terminator.desktop.in.h:1 msgid "Multiple terminals in one window" @@ -463,7 +463,7 @@ msgstr "移除组 %s" #: ../terminatorlib/terminal.py:398 msgid "G_roup all in tab" -msgstr "" +msgstr "将全部集合到一个选项卡里(_R)" #: ../terminatorlib/terminal.py:403 msgid "Ungr_oup all in tab"