модуль tran4ini
import dict4ini # http://code.google.com/p/dict4ini/ хоррошая библиотека для ini, рекомедую
import locale
ini = dict4ini.DictIni('myProgram.ini') #здесь читаем установку языка
if ini.common.lang:
lang=ini.common.lang
else:
ini.common.lang=lang='en'
ini.save()
encoding = locale.getdefaultlocale()
x=dict4ini.DictIni('translate.ini') # наш файл переводов в кодировке UTF - 8 (создается автоматом при 1 вызове)
def _(s,lang=lang):
if lang!='en': # здесь собственно выбираем из словаря перевод
if x
#st=x
st=x.decode('utf8').encode(encoding) # если translate.ini в utf8
else:
st=s
elif not x: # основной язык, строиться автоматически
x=s
x.save()
st=s
else: # если нет перевода то и английский подойдет
st=x
return st
Пример использования:
from tran4ini import _
print _(“Нello word”)
- все строки для перевода обертываем в функцию аля gettext: _('Hello word')
- при первоначальных вызовах этой функции строиться translate.ini с секцией основного языка
- затем копируем содержимое этой секции в и переводим (кодировка Utf8 !)
- переключаем язык в myProgram.ini на ‘ru’
все
ps.
ini для примера
myProgram.ini
lang='ru'
translate.ini
Hello word = ‘Hello word’
Hello word = ‘Привет солнышко’
pss.
Внимательные заметят неявную связку названия языка с локалью пользователя.