fix the crash when providing invalid locale in env
This commit is contained in:
parent
40b30f1cee
commit
d27e6a5dfa
@ -15,7 +15,6 @@ except ImportError:
|
||||
sip.setapi('QVariant', 2)
|
||||
from PyQt4.QtCore import *
|
||||
|
||||
DEFAULT_LOCALE = locale.getlocale()[0] if locale.getlocale() and len(locale.getlocale()) > 0 else os.getenv('LANG')
|
||||
|
||||
class StringBundle:
|
||||
|
||||
@ -29,7 +28,14 @@ class StringBundle:
|
||||
self.__loadBundle(path)
|
||||
|
||||
@classmethod
|
||||
def getBundle(cls, localeStr=DEFAULT_LOCALE):
|
||||
def getBundle(cls, localeStr=None):
|
||||
if localeStr is None:
|
||||
try:
|
||||
localeStr = locale.getlocale()[0] if locale.getlocale() and len(
|
||||
locale.getlocale()) > 0 else os.getenv('LANG')
|
||||
except:
|
||||
print('Invalid locale')
|
||||
locale = 'en'
|
||||
return StringBundle(cls.__create_key, localeStr)
|
||||
|
||||
def getString(self, stringId):
|
||||
|
||||
@ -13,5 +13,16 @@ class TestStringBundle(unittest.TestCase):
|
||||
strBundle = StringBundle.getBundle('zh-TW')
|
||||
self.assertEqual(strBundle.getString("openDir"), u'\u958B\u555F\u76EE\u9304', 'Fail to load the zh-TW bundle')
|
||||
|
||||
def test_setInvaleLocaleToEnv_printErrorMsg(self):
|
||||
prev_lc = os.environ['LC_ALL']
|
||||
prev_lang = os.environ['LANG']
|
||||
os.environ['LC_ALL'] = 'UTF-8'
|
||||
os.environ['LANG'] = 'UTF-8'
|
||||
strBundle = StringBundle.getBundle()
|
||||
self.assertEqual(strBundle.getString("openDir"), 'Open Dir', 'Fail to load the default bundle')
|
||||
os.environ['LC_ALL'] = prev_lc
|
||||
os.environ['LANG'] = prev_lang
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user