From 9599bd713b85373d95f550032560aed010fcba70 Mon Sep 17 00:00:00 2001 From: asamoukin Date: Fri, 19 Sep 2008 07:58:05 +0000 Subject: [PATCH] git-svn-id: http://svn.calculate.ru/calculate2/calculate-lib/trunk@196 c91db197-33c1-4113-bf15-f8a5c547ca64 --- pym/cl_base.py | 12 ++++++++++-- pym/cl_utils.py | 22 ++++++---------------- pym/cl_utils2.py | 3 ++- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/pym/cl_base.py b/pym/cl_base.py index c6d5b77..c2dd4e1 100644 --- a/pym/cl_base.py +++ b/pym/cl_base.py @@ -143,7 +143,7 @@ class lang: def __translate(self,message): """Метод translate возвращает полученное значение без -изменеsmfprjadnwний""" +изменений""" return message def setLanguage(self,module): @@ -163,6 +163,10 @@ class lang: self.__setLang(mod) return self.__setLang(module) + def __utf8Translate(self, *arg, **argv): + """Изменение кодировки переведенной строки на UTF-8""" + return self.ugettext(*arg , **argv).encode("UTF-8") + def __setLang(self,module): """ Установка языка перевода для модуля module. @@ -192,7 +196,11 @@ class lang: """Если найден словарь то инициализируем переводчик""" transl = gettext.translation(nameDomain\ ,self.__catalog,la) - module._ = transl.ugettext + + transl.__utf8Translate =\ + lang.__utf8Translate.__get__(transl) + module._ = transl.__utf8Translate + #module._ = transl.ugettext ret = 1 else: module._ = self.__translate diff --git a/pym/cl_utils.py b/pym/cl_utils.py index 07b768f..2a00828 100644 --- a/pym/cl_utils.py +++ b/pym/cl_utils.py @@ -55,10 +55,8 @@ def prettyColumnStr(*cols): # перевести текст в юникод, заодно перевести числа в строку noconvert = False space = u' ' + nospace = u'' for i in xrange(0,len(cols),2): - if type(cols[i]) == types.UnicodeType: - space = " " - noconvert = True cols[i] = _toUNICODE(cols[i]) # флаг "есть еще текст для вывода" repeat = True @@ -84,7 +82,7 @@ def prettyColumnStr(*cols): cellspacing = space else: # разделитель не нужен - cellspacing = "" + cellspacing = nospace # если перевод строки найден, то if brfind != None: @@ -128,11 +126,7 @@ def prettyColumnStr(*cols): partstr = partstr.ljust(cols[q+1], ' ') cols[q] = '' - # добавить к возвращаемой строки полученную + пробел - if noconvert: - retstr+= partstr + cellspacing - else: - retstr+= partstr.encode('utf8') + cellspacing + retstr+= partstr + cellspacing # остальную часть строки оставить на следующую итерацию # если от строки что то осаталось @@ -143,7 +137,7 @@ def prettyColumnStr(*cols): q += 2 # колонки отображены retstr += "\n" - return retstr + return retstr.encode('utf8') def columnStr(*cols): '''Вывод данных по колонкам, причем, если данные не вмещаются в указнаную @@ -254,10 +248,9 @@ def justify(s,width): # переводим в юникод для правильного вычисления длины try: s = s.decode( 'utf-8' ) - needConver = True # пропуск если это не utf-8 except UnicodeEncodeError: - needConver = False + pass # пока длина строки меньше указанной while len(s) < width: # находим очередной пробел @@ -270,10 +263,7 @@ def justify(s,width): # оставить удвоенный пробел pos += 3 # вернуть строку в utf8 если она пришла в utf8 - if needConver: - return s.encode('utf-8') - else: - return s + return s.encode('utf-8') def runOsCommand(cmd, inStr=None, ret_first=None): """Выполняет внешнюю программу diff --git a/pym/cl_utils2.py b/pym/cl_utils2.py index 4d8e259..9298839 100644 --- a/pym/cl_utils2.py +++ b/pym/cl_utils2.py @@ -183,7 +183,8 @@ class cl_help: if visibleChapter: help += nameChapter + ": " + bef help += textChapterBloc + aft - return help.encode("UTF-8") + help = help.rstrip()+"\n" + return help def addChapterHelp(self, numChapter, helpTxt): """Добавить в раздел помощи numChapteк тектстовую строку helpTxt