From 832c0ac9880811a23dec9abe140925fcf4534163 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Sat, 29 Dec 2007 03:01:28 +0000 Subject: [PATCH] Add gettext support --- po/terminator.pot | 60 +++++++++++++++++++++++++++++++++++++++++++++++ setup.py | 42 +++++++++++++++++++++++++++++++++ terminator | 25 ++++++++++---------- 3 files changed, 115 insertions(+), 12 deletions(-) create mode 100644 po/terminator.pot diff --git a/po/terminator.pot b/po/terminator.pot new file mode 100644 index 00000000..954ec764 --- /dev/null +++ b/po/terminator.pot @@ -0,0 +1,60 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-12-29 02:52+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: terminator:307 +msgid "_Open Link" +msgstr "" + +#: terminator:308 +msgid "_Copy Link Address" +msgstr "" + +#: terminator:314 +msgid "_Send Mail To..." +msgstr "" + +#: terminator:315 +msgid "_Copy Email Address" +msgstr "" + +#: terminator:340 +msgid "Show scrollbar" +msgstr "" + +#: terminator:348 +msgid "Split _Horizontally" +msgstr "" + +#: terminator:352 +msgid "Split _Vertically" +msgstr "" + +#: terminator:414 +msgid "Close?" +msgstr "" + +#: terminator:419 +msgid "Close all terminals?" +msgstr "" + +#: terminator:422 +#, python-format +msgid "" +"This window has %s terminals open. Closing the window will also close all " +"terminals." +msgstr "" diff --git a/setup.py b/setup.py index 3a043e32..a0d8d9f0 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,47 @@ #!/usr/bin/env python from distutils.core import setup +from distutils.command.install_data import install_data +from distutils.dep_util import newer +from distutils.log import info +import glob +import os +import sys + +class InstallData(install_data): + def run (self): + self.data_files.extend (self._compile_po_files ()) + install_data.run (self) + + def _compile_po_files (self): + data_files = [] + + # Don't install language files on win32 + if sys.platform == 'win32': + return data_files + + PO_DIR = 'po' + for po in glob.glob (os.path.join (PO_DIR,'*.po')): + lang = os.path.basename(po[:-3]) + mo = os.path.join('build', 'mo', lang, 'terminator.mo') + + directory = os.path.dirname(mo) + if not os.path.exists(directory): + info('creating %s' % directory) + os.makedirs(directory) + + if newer(po, mo): + # True if mo doesn't exist + cmd = 'msgfmt -o %s %s' % (mo, po) + info('compiling %s -> %s' % (po, mo)) + if os.system(cmd) != 0: + raise SystemExit('Error while running msgfmt') + + dest = os.path.dirname(os.path.join('share', 'locale', lang, 'LC_MESSAGES', 'terminator.mo')) + data_files.append((dest, [mo])) + + return data_files + setup(name='Terminator', version='0.6', @@ -13,5 +54,6 @@ setup(name='Terminator', data_files=[ ('share/applications', ['terminator.desktop']), ], + cmdclass={'install_data': InstallData} ) diff --git a/terminator b/terminator index 9b62a0bd..47cead9f 100755 --- a/terminator +++ b/terminator @@ -42,6 +42,7 @@ import gnome import time import getopt import math +import gettext class TerminatorTerm: @@ -303,15 +304,15 @@ class TerminatorTerm: if url: if url[1] != self.matches['email']: address = url[0] - nameopen = "_Open Link" - namecopy = "_Copy Link Address" + nameopen = _("_Open Link") + namecopy = _("_Copy Link Address") else: if url[0][0:7] != "mailto:": address = "mailto:" + url[0] else: address = url[0] - nameopen = "_Send Mail To..." - namecopy = "_Copy Email Address" + nameopen = _("_Send Mail To...") + namecopy = _("_Copy Email Address") item = gtk.MenuItem (nameopen) item.connect ("activate", lambda menu_item: gnome.url_show (address)) @@ -336,7 +337,7 @@ class TerminatorTerm: item = gtk.MenuItem () menu.append (item) - item = gtk.CheckMenuItem ("Show scrollbar") + item = gtk.CheckMenuItem (_("Show scrollbar")) item.set_active (self._scrollbar.get_property ('visible')) item.connect ("toggled", lambda menu_item: self.do_scrollbar_toggle ()) menu.append (item) @@ -344,11 +345,11 @@ class TerminatorTerm: item = gtk.MenuItem () menu.append (item) - item = gtk.MenuItem ("Split _Horizontally") + item = gtk.MenuItem (_("Split _Horizontally")) item.connect ("activate", lambda menu_item: self.term.splitaxis (self, False)) menu.append (item) - item = gtk.MenuItem ("Split _Vertically") + item = gtk.MenuItem (_("Split _Vertically")) item.connect ("activate", lambda menu_item: self.term.splitaxis (self, True)) menu.append (item) @@ -410,16 +411,15 @@ class Terminator: return False # show dialog - dialog = gtk.Dialog ("Close?", window, gtk.DIALOG_MODAL, + dialog = gtk.Dialog (_("Close?"), window, gtk.DIALOG_MODAL, (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_CLOSE, gtk.RESPONSE_ACCEPT)) dialog.set_has_separator (False) dialog.set_resizable (False) - primairy = gtk.Label ('Close all terminals?') + primairy = gtk.Label (_('Close all terminals?')) primairy.set_use_markup (True) primairy.set_alignment (0, 0.5) - secundairy = gtk.Label (("This window has %s terminals open. " % len(self.term_list)) + - "Closing the window will also close all terminals.") + secundairy = gtk.Label (_("This window has %s terminals open. Closing the window will also close all terminals.") % len(self.term_list)) secundairy.set_line_wrap(True) primairy.set_alignment (0, 0.5) @@ -619,7 +619,8 @@ if __name__ == '__main__': fullscreen = True if opt in ("-p", "--profile"): profile = arg - + + gettext.install ('terminator') term = Terminator (profile) # Set the Terminator in fullscreen state or maximize it.