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
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
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
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