def get_system_locale(): from calibre.constants import iswindows, isosx, plugins lang = None if iswindows: try: from calibre.constants import get_windows_user_locale_name lang = get_windows_user_locale_name() lang = lang.strip() if not lang: lang = None except: pass # Windows XP does not have the GetUserDefaultLocaleName fn elif isosx: try: lang = plugins['usbobserver'][0].user_locale() or None except: # Fallback to environment vars if something bad happened import traceback traceback.print_exc() if lang is None: try: lang = locale.getdefaultlocale( ['LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LC_MESSAGES', 'LANG'])[0] except: pass # This happens on Ubuntu apparently if lang is None and 'LANG' in os.environ: # Needed for OS X try: lang = os.environ['LANG'] except: pass if lang: lang = lang.replace('-', '_') lang = '_'.join(lang.split('_')[:2]) return lang
def get_system_locale(): from calibre.constants import iswindows, isosx, plugins lang = None if iswindows: try: from calibre.constants import get_windows_user_locale_name lang = get_windows_user_locale_name() lang = lang.strip() if not lang: lang = None except: pass # Windows XP does not have the GetUserDefaultLocaleName fn elif isosx: try: lang = plugins['usbobserver'][0].user_locale() or None except: # Fallback to environment vars if something bad happened import traceback traceback.print_exc() if lang is None: try: lang = locale.getdefaultlocale(['LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LC_MESSAGES', 'LANG'])[0] except: pass # This happens on Ubuntu apparently if lang is None and 'LANG' in os.environ: # Needed for OS X try: lang = os.environ['LANG'] except: pass if lang: lang = lang.replace('-', '_') lang = '_'.join(lang.split('_')[:2]) return lang
def get_system_locale(): from calibre.constants import iswindows lang = None if iswindows: try: from calibre.constants import get_windows_user_locale_name lang = get_windows_user_locale_name() lang = lang.strip() if not lang: lang = None except: pass # Windows XP does not have the GetUserDefaultLocaleName fn if lang is None: try: lang = locale.getdefaultlocale(['LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LC_MESSAGES', 'LANG'])[0] except: pass # This happens on Ubuntu apparently if lang is None and os.environ.has_key('LANG'): # Needed for OS X try: lang = os.environ['LANG'] except: pass if lang: lang = lang.replace('-', '_') lang = '_'.join(lang.split('_')[:2]) return lang
def get_system_locale(): from calibre.constants import iswindows lang = None if iswindows: try: from calibre.constants import get_windows_user_locale_name lang = get_windows_user_locale_name() lang = lang.strip() if not lang: lang = None except: pass # Windows XP does not have the GetUserDefaultLocaleName fn if lang is None: try: lang = locale.getdefaultlocale(["LANGUAGE", "LC_ALL", "LC_CTYPE", "LC_MESSAGES", "LANG"])[0] except: pass # This happens on Ubuntu apparently if lang is None and "LANG" in os.environ: # Needed for OS X try: lang = os.environ["LANG"] except: pass if lang: lang = lang.replace("-", "_") lang = "_".join(lang.split("_")[:2]) return lang
def get_system_locale(): from calibre.constants import iswindows, ismacos lang = None if iswindows: try: from calibre.constants import get_windows_user_locale_name lang = get_windows_user_locale_name() lang = lang.strip() if not lang: lang = None except: pass # Windows XP does not have the GetUserDefaultLocaleName fn elif ismacos: from calibre_extensions.usbobserver import user_locale try: lang = user_locale() or None except Exception: # Fallback to environment vars if something bad happened import traceback traceback.print_exc() if lang is None: try: envvars = ['LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LC_MESSAGES', 'LANG'] lang = locale.getdefaultlocale(envvars)[0] # lang is None in two cases: either the environment variable is not # set or it's "C". Stop looking for a language in the latter case. if lang is None: for var in envvars: if os.environ.get(var) == 'C': lang = 'en_US' break except: pass # This happens on Ubuntu apparently if lang is None and 'LANG' in os.environ: # Needed for OS X try: lang = os.environ['LANG'] except: pass if lang: lang = lang.replace('-', '_') lang = '_'.join(lang.split('_')[:2]) return lang
def get_system_locale(): from calibre.constants import iswindows, isosx, plugins lang = None if iswindows: try: from calibre.constants import get_windows_user_locale_name lang = get_windows_user_locale_name() lang = lang.strip() if not lang: lang = None except: pass # Windows XP does not have the GetUserDefaultLocaleName fn elif isosx: try: lang = plugins['usbobserver'][0].user_locale() or None except: # Fallback to environment vars if something bad happened import traceback traceback.print_exc() if lang is None: try: envvars = ['LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LC_MESSAGES', 'LANG'] lang = locale.getdefaultlocale(envvars)[0] # lang is None in two cases: either the environment variable is not # set or it's "C". Stop looking for a language in the latter case. if lang is None: for var in envvars: if os.environ.get(var) == 'C': lang = 'en_US' break except: pass # This happens on Ubuntu apparently if lang is None and 'LANG' in os.environ: # Needed for OS X try: lang = os.environ['LANG'] except: pass if lang: lang = lang.replace('-', '_') lang = '_'.join(lang.split('_')[:2]) return lang