From 595e0b8e9bec7baa7dfe0af5f10a77323637a6ef Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 18 Nov 2007 19:11:14 +0000 Subject: [PATCH] Add support for dynamically loading translations from .po files. --- src/libprs500/__init__.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/libprs500/__init__.py b/src/libprs500/__init__.py index d1d0504427..0aa5c649ba 100644 --- a/src/libprs500/__init__.py +++ b/src/libprs500/__init__.py @@ -22,6 +22,8 @@ import sys, os, logging, mechanize, locale, cStringIO from gettext import GNUTranslations from math import floor +from libprs500.translations.msgfmt import make + iswindows = 'win32' in sys.platform.lower() isosx = 'darwin' in sys.platform.lower() islinux = not(iswindows or isosx) @@ -119,8 +121,14 @@ def set_translator(): pass if lang: lang = lang[:2] - if translations.has_key(lang): + buf = None + if os.access(lang+'.po', os.R_OK): + buf = cStringIO.StringIO() + make(lang+'.po', buf) + buf = cStringIO.StringIO(buf.getvalue()) + elif translations.has_key(lang): buf = cStringIO.StringIO(translations[lang]) + if buf is not None: t = GNUTranslations(buf) t.install(unicode=True)