2011-10-20 6 views
5

मेरे पास एक ऐसा एप्लिकेशन है जो कई प्रक्रियाओं में चलता है (एक वेबसर्वर और कुछ प्रक्रियाएं जो भारी गणना के लिए उपयोग की जाती हैं)। लक्ष्य इन गणना प्रक्रियाओं को स्थानीय त्रुटियों को वापस करना है। ऐसा करने के लिए में, मैं एक शब्दकोश है कि कोलाहल द्वारा उपयोग किया जाएगा बनाया है:एक पिलोन अनुवादक ऑब्जेक्ट को कैसे पंजीकृत करें?

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

लेकिन जब मैं आवेदन शुरू करने की कोशिश करते हैं, मैं

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

मिल क्या सही तरीका है अनुवादक वस्तु को लोड करने के लिए?

अग्रिम धन्यवाद, इवान।

उत्तर

1

मैं तुम्हें मुख्य सर्वर सूत्र में अनुवाद कर की सिफारिश करेंगे, लेकिन आप रजिस्टर/तो जैसे एक अनुवादक वस्तु का उपयोग कर सकते हैं:

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) 

उसके बाद, _ मुख्य धागे में काम करेगा।

संबंधित मुद्दे