Beispiel #1
0
 def js_localization(self, domain='baruwajs'):
     "Return dict of localized strings for JS"
     locale_t = {}
     locale = get_lang()[0]
     path = os.path.join(config['pylons.paths']['root'], 'i18n')
     try:
         catalog = gettext.translation(domain, path, [locale])
     except IOError:
         catalog = None
     if catalog is not None:
         locale_t.update(catalog._catalog)
     src = [LIBHEAD]
     plural = None
     if '' in locale_t:
         for l in locale_t[''].split('\n'):
             if l.startswith('Plural-Forms:'):
                 plural = l.split(':', 1)[1].strip()
     if plural is not None:
         plural = [
             el.strip() for el in plural.split(';')
             if el.strip().startswith('plural=')
         ][0].split('=', 1)[1]
         src.append(PLURALIDX % plural)
     else:
         src.append(SIMPLEPLURAL)
     csrc = []
     pdict = {}
     for k, v in locale_t.items():
         if k == '':
             continue
         if isinstance(k, basestring):
             csrc.append("catalog['%s'] = '%s';\n" %
                         (quote_js(k), quote_js(v)))
         elif isinstance(k, tuple):
             if k[0] not in pdict:
                 pdict[k[0]] = k[1]
             else:
                 pdict[k[0]] = max(k[1], pdict[k[0]])
             csrc.append("catalog['%s'][%d] = '%s';\n" %
                         (quote_js(k[0]), k[1], quote_js(v)))
         else:
             raise TypeError(k)
     csrc.sort()
     for k, v in pdict.items():
         src.append("catalog['%s'] = [%s];\n" %
                    (quote_js(k), ','.join(["''"] * (v + 1))))
     src.extend(csrc)
     src.append(LIBFOOT)
     src.append(INTERPOLATE)
     src = ''.join(src)
     del response.headers['Cache-Control']
     del response.headers['Pragma']
     response.cache_expires(seconds=360)
     response.headers['Content-Type'] = 'text/javascript;charset=utf-8'
     return src
Beispiel #2
0
 def js_localization(self, domain='baruwajs'):
     "Return dict of localized strings for JS"
     locale_t = {}
     locale = get_lang()[0]
     path = os.path.join(config['pylons.paths']['root'], 'i18n')
     try:
         catalog = gettext.translation(domain, path, [locale])
     except IOError:
         catalog = None
     if catalog is not None:
         locale_t.update(catalog._catalog)
     src = [LIBHEAD]
     plural = None
     if '' in locale_t:
         for l in locale_t[''].split('\n'):
             if l.startswith('Plural-Forms:'):
                 plural = l.split(':', 1)[1].strip()
     if plural is not None:
         plural = [el.strip() for el in plural.split(';')
         if el.strip().startswith('plural=')][0].split('=', 1)[1]
         src.append(PLURALIDX % plural)
     else:
         src.append(SIMPLEPLURAL)
     csrc = []
     pdict = {}
     for k, v in locale_t.items():
         if k == '':
             continue
         if isinstance(k, basestring):
             csrc.append("catalog['%s'] = '%s';\n" % (quote_js(k),
             quote_js(v)))
         elif isinstance(k, tuple):
             if k[0] not in pdict:
                 pdict[k[0]] = k[1]
             else:
                 pdict[k[0]] = max(k[1], pdict[k[0]])
             csrc.append("catalog['%s'][%d] = '%s';\n" % (quote_js(k[0]),
             k[1], quote_js(v)))
         else:
             raise TypeError(k)
     csrc.sort()
     for k, v in pdict.items():
         src.append("catalog['%s'] = [%s];\n" % (quote_js(k),
         ','.join(["''"] * (v + 1))))
     src.extend(csrc)
     src.append(LIBFOOT)
     src.append(INTERPOLATE)
     src = ''.join(src)
     del response.headers['Cache-Control']
     del response.headers['Pragma']
     response.cache_expires(seconds=360)
     response.headers['Content-Type'] = 'text/javascript;charset=utf-8'
     return src
Beispiel #3
0
 def _js_localization(self, locale):
     "Return dict of localized strings for JS"
     locale_t = {}
     path = os.path.join(config['pylons.paths']['root'], 'i18n')
     try:
         catalog = gettext.translation('baruwajs', path, [locale])
     except IOError:
         catalog = None
     if catalog is not None:
         locale_t.update(catalog._catalog)
     src = [LIBHEAD]
     plural = None
     if '' in locale_t:
         for loc in locale_t[''].split('\n'):
             if loc.startswith('Plural-Forms:'):
                 plural = loc.split(':', 1)[1].strip()
     if plural is not None:
         plural = [
             el.strip() for el in plural.split(';')
             if el.strip().startswith('plural=')
         ][0].split('=', 1)[1]
         src.append(PLURALIDX % plural)
     else:
         src.append(SIMPLEPLURAL)
     csrc = []
     pdict = {}
     for key, val in locale_t.items():
         if key == '':
             continue
         if isinstance(key, basestring):
             csrc.append("catalog['%s'] = '%s';\n" %
                         (quote_js(key), quote_js(val)))
         elif isinstance(key, tuple):
             if key[0] not in pdict:
                 pdict[key[0]] = key[1]
             else:
                 pdict[key[0]] = max(key[1], pdict[key[0]])
             csrc.append("catalog['%s'][%d] = '%s';\n" %
                         (quote_js(key[0]), key[1], quote_js(val)))
         else:
             raise TypeError(key)
     csrc.sort()
     for key, val in pdict.items():
         src.append("catalog['%s'] = [%s];\n" %
                    (quote_js(key), ','.join(["''"] * (val + 1))))
     src.extend(csrc)
     src.append(LIBFOOT)
     src.append(INTERPOLATE)
     src = ''.join(src)
     return src
Beispiel #4
0
 def _js_localization(self, locale):
     "Return dict of localized strings for JS"
     locale_t = {}
     path = os.path.join(config['pylons.paths']['root'], 'i18n')
     try:
         catalog = gettext.translation('baruwajs', path, [locale])
     except IOError:
         catalog = None
     if catalog is not None:
         locale_t.update(catalog._catalog)
     src = [LIBHEAD]
     plural = None
     if '' in locale_t:
         for loc in locale_t[''].split('\n'):
             if loc.startswith('Plural-Forms:'):
                 plural = loc.split(':', 1)[1].strip()
     if plural is not None:
         plural = [el.strip() for el in plural.split(';')
         if el.strip().startswith('plural=')][0].split('=', 1)[1]
         src.append(PLURALIDX % plural)
     else:
         src.append(SIMPLEPLURAL)
     csrc = []
     pdict = {}
     for key, val in locale_t.items():
         if key == '':
             continue
         if isinstance(key, basestring):
             csrc.append("catalog['%s'] = '%s';\n" % (quote_js(key),
             quote_js(val)))
         elif isinstance(key, tuple):
             if key[0] not in pdict:
                 pdict[key[0]] = key[1]
             else:
                 pdict[key[0]] = max(key[1], pdict[key[0]])
             csrc.append("catalog['%s'][%d] = '%s';\n" % (quote_js(key[0]),
             key[1], quote_js(val)))
         else:
             raise TypeError(key)
     csrc.sort()
     for key, val in pdict.items():
         src.append("catalog['%s'] = [%s];\n" % (quote_js(key),
         ','.join(["''"] * (val + 1))))
     src.extend(csrc)
     src.append(LIBFOOT)
     src.append(INTERPOLATE)
     src = ''.join(src)
     return src