Better determine language cross platform
This commit is contained in:
		
							parent
							
								
									5329190d9c
								
							
						
					
					
						commit
						2ad179df77
					
				
					 1 changed files with 23 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -69,6 +69,22 @@ def iter_locale_dirs():
 | 
			
		|||
        if locale_dir.is_dir():
 | 
			
		||||
            yield str(locale_dir)
 | 
			
		||||
 | 
			
		||||
def get_default_lang():
 | 
			
		||||
    if os.name == "nt":
 | 
			
		||||
        import ctypes
 | 
			
		||||
        windll = ctypes.windll.kernel32
 | 
			
		||||
        lang = locale.windows_locale[windll.GetUserDefaultUILanguage()]
 | 
			
		||||
        return lang[:2]
 | 
			
		||||
 | 
			
		||||
    if sys.platform == "darwin":
 | 
			
		||||
        from AppKit import NSLocale
 | 
			
		||||
        return NSLocale.currentLocale().languageCode()
 | 
			
		||||
 | 
			
		||||
    default = locale.getdefaultlocale()[0]
 | 
			
		||||
    if default is not None:
 | 
			
		||||
        return default[:2]
 | 
			
		||||
    return 'en'
 | 
			
		||||
 | 
			
		||||
def initialize_direction_mark():
 | 
			
		||||
    from gi.repository import Gtk
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -137,15 +153,13 @@ try:
 | 
			
		|||
except locale.Error as error:
 | 
			
		||||
    print(error)
 | 
			
		||||
 | 
			
		||||
if os.name == 'nt':
 | 
			
		||||
    try:
 | 
			
		||||
        # en_US, fr_FR, el_GR etc..
 | 
			
		||||
        default = locale.getdefaultlocale()[0]
 | 
			
		||||
        if default is not None:
 | 
			
		||||
            LANG = default[:2]
 | 
			
		||||
    except (ValueError, locale.Error):
 | 
			
		||||
        pass
 | 
			
		||||
    os.environ['LANG'] = LANG
 | 
			
		||||
try:
 | 
			
		||||
    LANG = get_default_lang()
 | 
			
		||||
    print('Found default language: %s' % LANG)
 | 
			
		||||
except Exception as error:
 | 
			
		||||
    print('Failed to determine default language')
 | 
			
		||||
    import traceback
 | 
			
		||||
    traceback.print_exc()
 | 
			
		||||
 | 
			
		||||
# Search for the translation in all locale dirs
 | 
			
		||||
for dir_ in iter_locale_dirs():
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue