X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/examples/locale/create_languages_js.py diff --git a/examples/locale/create_languages_js.py b/examples/locale/create_languages_js.py new file mode 100644 index 00000000..1ac1d8c7 --- /dev/null +++ b/examples/locale/create_languages_js.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python + +import sys, os, re + +try: + import chardet +except ImportError: + print "You need universal encoding detector for this script" + print " http://chardet.feedparser.org or apt-get install python-chardet" + sys.exit() + +regexp_language = re.compile("\* +(.+) +translation", re.IGNORECASE) +js_template = """/* This file is automaticly generated by create_language_js.py */ + +// some data used in the examples +Ext.namespace('Ext.exampledata'); + +// TODO: complete and sort the list +Ext.exampledata.languages = [ +%s +]; +""" + + +lang_dubs = {} +def lang_name(file): + language = os.path.basename(file) + m = regexp_language.search(open(file).read(512)) + if m: + language = m.groups()[0] + if not lang_dubs.has_key(language): + lang_dubs[language] = file + else: + raise Exception('Duplicate language '+language+' for file '+file) + return language + +def print_locale(lang_code): + print lang_code, + sys.stdout.flush() + return True + +def main(): + base_dir = "../../src/locale" + base_file = lambda f: os.path.join(base_dir, f) + try: + locales = os.listdir(base_dir) + except IOError: + print "Cannot find source locale directory: %s ... exiting" % base_dir + sys.exit() + + valid_file = lambda e: e.endswith(".js") and e.startswith("ext-lang-") + char_set = lambda f: chardet.detect(open(f).read())['encoding'] + lang_code = lambda f: f[9:f.rfind(".js")] + info_set = lambda f: (lang_name(base_file(f)), (lang_code(f), char_set(base_file(f)))) + locales = dict(info_set(file) for file in locales if valid_file(file) and print_locale(lang_code(file))) + print "... done" + locale_strarray = ',\n'.join(["\t[%r, %r, %r]" % (code, name, charset) \ + for name, (code, charset) in sorted(locales.items())]) + # create languages.js + open("languages.js", "w").write(js_template % locale_strarray) + print "saved %d languages to languages.js" % len(locales) + +if __name__=="__main__": + main()