Changeset 3287
- Timestamp:
- 07/27/2007 03:21:05 PM (1 year ago)
- Files:
-
- trunk/dabo/dLocalize.py (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/dabo/dLocalize.py
r3286 r3287 12 12 import dabo 13 13 14 _ _app_initialized = False15 _ _app_has_locale = False16 _ _dabo_trans= None17 _ _app_trans= None18 _locale dir = "locale"19 _frozen localedir = "dabo.locale"14 _appInitialized = False 15 _appHasLocale = False 16 _daboTranslate = None 17 _appTranslate = None 18 _localeDir = "locale" 19 _frozenLocaleDir = "dabo.locale" 20 20 21 language _aliases = {"english": "en",21 languageAliases = {"english": "en", 22 22 "spanish": "es", "espanol": "es", "español": "es", 23 23 "french": "fr", "francais": "fr", "français": "fr", … … 43 43 "daboapplication.mo". 44 44 """ 45 global defLang, _ _app_initialized, __app_has_locale45 global defLang, _appInitialized, _appHasLocale 46 46 47 if not _ _app_initialized:47 if not _appInitialized: 48 48 try: 49 49 app = dabo.dAppRef … … 52 52 53 53 if app: 54 _ _app_initialized = True54 _appInitialized = True 55 55 # If appShortName not changed in user app, defaults to "daboapplication" 56 __app_has_locale = setLanguage(domain=app.getAppInfo("appShortName").lower(), 57 localedir=os.path.join(app.HomeDirectory, _localedir)) 56 shortName = app.getAppInfo("appShortName") 57 if shortName is not None: 58 _appHasLocale = setLanguage(domain=shortName.lower(), 59 localedir=os.path.join(app.HomeDirectory, _localeDir)) 58 60 59 61 60 62 # Always return Unicode strings 61 if _ _app_initialized and __app_has_locale:63 if _appInitialized and _appHasLocale: 62 64 # Use app's localization, with Dabo's as a fallback: 63 return _ _app_trans.ugettext(s)65 return _appTranslate.ugettext(s) 64 66 else: 65 67 # App's localization is not in place; use only Dabo's: 66 return __dabo_trans.ugettext(s) 68 return _daboTranslate.ugettext(s) 69 67 70 68 71 def n_(s): … … 77 80 # Do we use it even? 78 81 82 79 83 def setLanguage(lang=None, charset=None, domain="dabo", localedir=None): 80 84 """Use it if you want to switch to another localizations than your default. 81 85 You should call it twice - once for dabo framework, and once for app. 82 86 """ 83 global defLang, defCharset, _ _dabo_trans, __app_trans87 global defLang, defCharset, _daboTranslate, _appTranslate 84 88 85 89 #TODO: we should search system localizations directory as well 86 90 87 91 if localedir is None: 88 localedir = os.path.join(os.path.split(dabo.__file__)[0], _locale dir)92 localedir = os.path.join(os.path.split(dabo.__file__)[0], _localeDir) 89 93 if not os.path.exists(localedir): 90 94 # Frozen app? … … 96 100 break 97 101 if domain == "dabo": 98 frozenLocaleDir = _frozen localedir102 frozenLocaleDir = _frozenLocaleDir 99 103 else: 100 frozenLocaleDir = _locale dir104 frozenLocaleDir = _localeDir 101 105 localedir = os.path.join(startupDir, frozenLocaleDir) 102 106 … … 109 113 lang = lang.lower() 110 114 # It might be the full name instead of the two-letter abbreviation: 111 lang = language _aliases.get(lang, lang)115 lang = languageAliases.get(lang, lang) 112 116 113 117 localefile = gettext.find(domain, localedir, languages=[lang], all=True) … … 116 120 if not localefile: 117 121 raise IOError, "No translation files found for Dabo. Looked in %s." % localedir 118 _ _dabo_trans= gettext.translation(domain, localedir, languages=[lang], codeset=charset)122 _daboTranslate = gettext.translation(domain, localedir, languages=[lang], codeset=charset) 119 123 defLang = lang 120 124 else: 121 125 if localefile: 122 _ _app_trans= gettext.translation(domain, localedir, languages=[lang], codeset=charset)123 if _ _app_trans:124 _ _app_trans.add_fallback(__dabo_trans)125 return bool(_ _app_trans)126 _appTranslate = gettext.translation(domain, localedir, languages=[lang], codeset=charset) 127 if _appTranslate: 128 _appTranslate.add_fallback(_daboTranslate) 129 return bool(_appTranslate) 126 130 return False 127 131 … … 145 149 sys.setdefaultencoding(locale.getdefaultlocale()[1]) 146 150 147 print 'user locale is ', locale.getdefaultlocale()148 print 'framework locale is ', defLang, defCharset151 print "user locale is ", locale.getdefaultlocale() 152 print "framework locale is ", defLang, defCharset 149 153 print _("Framework localization test")
