jsi18n.py.svn-base

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 65 行

SVN-BASE
65
字号
#!/usr/bin/python## JS Gettext-style extractor.import reimport sysusage_str = '''   Extracts _() items in JS.   Usage:  jsi18n.py [list of files] > output.smarty'''baseline = '''/* *  Javascript (actual translations); */ {literal}var i18n = {};function _(trans_string) {    var newstr = i18n[trans_string];    if (!isUndefinedOrNull(newstr)) { return newstr; }     else {       return trans_string;    }}{/literal}'''peritem = "i18n['%s'] = '{i18n}%s{/i18n}';\n"# this is not the best way to do this ...class JSExtractor:    def __init__(self, filename):        self.strings = []        handle = file(filename, 'r')        self.content = handle.read()        handle.close()            def process(self):        proc = re.compile('(_\(\'(.*?)\'\))')        self.strings = [i[1] for i in proc.findall(self.content)]                 def getStrings(self):        out = ''        for l in self.strings:            out += peritem%(l, l)        return out        if __name__ == '__main__':    fake_po = baseline        filelist = sys.stdin.readlines()    for filename in filelist:        processor = JSExtractor(filename[:-1])        processor.process()        fake_po += "\n// strings for file: %s\n"%(filename[:-1]);        fake_po += processor.getStrings()        print fake_po

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?