Mercurial > pyarq-presupuestos
diff Generic/win32Locale.py @ 15:2a13413dcc13
gettext on windows
author | Miguel Ángel Bárcena Rodríguez <miguelangel@obraencurso.es> |
---|---|
date | Sun, 02 Jan 2011 10:27:16 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Generic/win32Locale.py Sun Jan 02 10:27:16 2011 +0100 @@ -0,0 +1,55 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +## File win32Locale.py +## This file is part of pyArq-Presupuestos. +## +## Copyright (C) 2010 Miguel Ángel Bárcena Rodríguez +## <miguelangel@obraencurso.es> +## +## This file is based in i18n.py from QBzr - Qt frontend to Bazaar commands +## Copyright (C) 2007 Lukáš Lalinský <lalinsky@gmail.com> +## Copyright (C) 2007 Alexander Belchenko <bialix@ukr.net> +## +## pyArq-Presupuestos is free software: you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. +## +## pyArq-Presupuestos is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program. If not, see <http://www.gnu.org/licenses/>. + +"""win32 locale""" + +import os +import sys + +def check_win32_locale(): + for i in ('LANGUAGE','LC_ALL','LC_MESSAGES','LANG'): + if os.environ.get(i): + break + else: + lang = None + import locale + try: + import ctypes + except ImportError: + # use only user's default locale + lang = locale.getdefaultlocale()[0] + else: + # using ctypes to determine all locales + lcid_user = ctypes.windll.kernel32.GetUserDefaultLCID() + lcid_system = ctypes.windll.kernel32.GetSystemDefaultLCID() + if lcid_user != lcid_system: + lcid = [lcid_user, lcid_system] + else: + lcid = [lcid_user] + lang = [locale.windows_locale.get(i) for i in lcid] + lang = ':'.join([i for i in lang if i]) + # set lang code for gettext + if lang: + os.environ['LANGUAGE'] = lang