2011-10-20 11 views
5

Birkaç işlemde çalışan bir uygulama var (bir web sunucusu ve yoğun hesaplamalar için kullanılan birkaç işlem). Amaç, bu hesaplama süreçlerinin yerelleştirilmiş hataları döndürmesini sağlamaktır. doğru yolu nedirBir Pylons çeviricisi nesnesi nasıl kaydedilir?

errors = { 
    'ERR_REQUEST_FORMAT': (1, _('ERR_REQUEST_FORMAT')), 
    'ERR_REQUEST_TYPE': (2, _('ERR_REQUEST_TYPE')), 
} 

Ama uygulamayı başlatmak için çalışırken, ben

TypeError: No object (name: translator) has been registered for this thread 

olsun: Bunu yapmak için, ben Babil tarafından kullanılacak bir sözlük yaptık çevirmen nesnesini yüklemek için?

Şimdiden teşekkürler, Ivan.

cevap

1

Ben ana sunucu dizisindeki çevirmek öneriyoruz, ancak/kayıt şöyle bir çevirmen nesnesini kullanabilirsiniz: Eğer biraz daha yapabilirsiniz dikmesi çevre faydalanmak istiyorsanız

import gettext 
str_to_translate = u'String to Translate' 
DOMAIN = 'example' # name of your translation babel translation file, here would be example.po 
LOCALE_DIR = '/path/to/locale/dir' # directory containing language subdirectories 
LANGUAGES = ['es'] 
CODESET = 'utf8' 
translator = gettext.translation(DOMAIN, localedir=LOCALE_DIR, languages=LANGUAGES, codeset=CODESET) 
translated_str = translator.gettext(str_to_translate) 

from pylons import config 
from pylons.i18n.translation import set_lang 
conf = config.current_conf() 
if not conf['pylons.paths']['root']: 
    conf['pylons.paths']['root'] = os.path.abspath(NAME_OF_YOUR_PROJECT) 
if not conf.get('pylons.package'): 
    conf['pylons.package'] = 'example' # same as domain above 
set_lang(LANG, pylons_config=conf) 

Bundan sonra _ ana iş parçacığı olduğu gibi çalışır: böyle bir şey yapmak.