~openerp-dev/openobject-client-web/6.0-opw-593396-msh

« back to all changes in this revision

Viewing changes to openerp/widgets/js_i18n.py

  • Committer: ame (Tiny/Axelor)
  • Date: 2009-04-20 18:37:57 UTC
  • Revision ID: ame@tinyerp.com-20090420183757-fb6f9253vjybgry3
* Implemented core i18n & l18n api.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#from turbogears.i18n import tg_gettext
2
 
 
3
 
#TODO: implement i18n supprt using babel
 
1
from openerp import i18n
 
2
from openerp import tools
4
3
 
5
4
from base import Widget
6
5
from base import JSLink
7
6
 
8
7
def _get_locale():
9
 
    lang = tg_gettext.get_locale()
 
8
    lang = i18n.get_locale()
10
9
    if len(lang) == 2:
11
10
        lang = lang + '_' + lang
12
11
    if len(lang) > 2:
17
16
class JSCatelog(JSLink):
18
17
    def update_params(self, d):
19
18
        super(JSCatelog, self).update_params(d)
20
 
        #lang = _get_locale()
21
 
        #if tg_gettext.is_locale_supported(lang):
22
 
        #    d["link"] = "/%sstatic/javascript/i18n/%s.js" % (startup.webpath, lang)
 
19
        lang = _get_locale()
 
20
        if i18n.is_locale_supported(lang):
 
21
            d["link"] = tools.url("/static/javascript/i18n/%s.js" % (lang))
23
22
 
24
23
class JSI18n(Widget):
25
24
    javascript = [JSLink('openerp', 'javascript/i18n/i18n.js'),
32
31
 
33
32
import os
34
33
import pkg_resources
35
 
#from turbojson import jsonify
 
34
import simplejson
36
35
 
37
36
def __generate_catalog(locale):
38
37
 
39
 
    if not tg_gettext.is_locale_supported(locale):
 
38
    if not i18n.is_locale_supported(locale):
40
39
        return
41
40
 
42
41
    fname = pkg_resources.resource_filename("openerp",  "static/javascript/i18n/%s.js" % locale)
43
 
    cname = os.path.join(tg_gettext.get_locale_dir(), locale, 'LC_MESSAGES', 'messages.mo')
 
42
    cname = os.path.join(i18n.get_locale_dir(), locale, 'LC_MESSAGES', 'messages.mo')
44
43
 
45
44
    if os.path.exists(fname) and os.path.getmtime(fname) >= os.path.getmtime(cname):
46
45
        return
48
47
    print "Generating JavaScript i18n message catalog for %s..." % locale
49
48
    messages = {}
50
49
    try:
51
 
        messages = tg_gettext.get_catalog(locale=locale)._catalog
 
50
        messages = i18n.get_catalog(locale=locale)._catalog
52
51
        messages.pop("")
53
52
    except Exception, e:
54
53
        pass
55
 
    messages = jsonify.encode(messages)
 
54
    messages = simplejson.dumps(messages)
56
55
 
57
56
    catalog = """
58
57
// Auto generated file. Please don't modify.
68
67
        pass
69
68
 
70
69
def __generate_catalogs():
71
 
    for lang in os.listdir(tg_gettext.get_locale_dir()):
 
70
    for lang in os.listdir(i18n.get_locale_dir()):
72
71
        __generate_catalog(lang)
73
72
 
74
 
#TODO: __generate_catalogs()
 
73
__generate_catalogs()
75
74
 
76
75
# vim: ts=4 sts=4 sw=4 si et
77
76