we can pickle object
[tiramisu.git] / tiramisu / i18n.py
1 # -*- coding: UTF-8 -*-
2 # Copyright (C) 2012-2013 Team tiramisu (see AUTHORS for all contributors)
3 #
4 # This program is free software: you can redistribute it and/or modify it
5 # under the terms of the GNU Lesser General Public License as published by the
6 # Free Software Foundation, either version 3 of the License, or (at your
7 # option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 # FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
12 # details.
13 #
14 # You should have received a copy of the GNU Lesser General Public License
15 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 #
17 # The original `Config` design model is unproudly borrowed from
18 # the rough gus of pypy: pypy: http://codespeak.net/svn/pypy/dist/pypy/config/
19 # the whole pypy projet is under MIT licence
20 "internationalisation utilities"
21 import gettext
22 import os
23 import sys
24 import locale
25
26 # Application Name
27 APP_NAME = 'tiramisu'
28
29 # Traduction dir
30 APP_DIR = os.path.join(sys.prefix, 'share')
31 LOCALE_DIR = os.path.join(APP_DIR, 'locale')
32
33 # Default Lanugage
34 DEFAULT_LANG = os.environ.get('LANG', '').split(':')
35 DEFAULT_LANG += ['en_US']
36
37 languages = []
38 lc, encoding = locale.getdefaultlocale()
39 if lc:
40     languages = [lc]
41
42 languages += DEFAULT_LANG
43 mo_location = LOCALE_DIR
44
45
46 if sys.version_info[0] >= 3:
47     gettext.install(True, localedir=None)
48 else:
49     gettext.install(True, localedir=None, unicode=1)
50 gettext.find(APP_NAME, mo_location)
51 gettext.textdomain(APP_NAME)
52 gettext.bind_textdomain_codeset(APP_NAME, "UTF-8")
53 gettext.translation(APP_NAME, fallback=True)
54
55 _ = gettext.gettext