3 import os, os.path, re, sys, locale
44 def parse_spec(infile, outfile):
45 re_summary = re.compile("^Summary\(([^\)]+)\):\t+(.*)$")
46 re_utf = re.compile(".utf-8$", re.I)
47 re_desc = re.compile("^(%description.*\s)-l\s+([\S]+)($|\s.*$)")
48 re_proc = re.compile("^%")
53 r = re_summary.match(l)
56 if re_utf.search(lang):
59 if lang in langs.keys():
61 desc = unicode(r.group(2), langs[lang]).encode("UTF-8")
62 l = "Summary(%s.UTF-8): %s\n" % (lang, desc)
63 except UnicodeDecodeError:
64 outfile.write("#transcoding error Summary(%s)\n" % (lang))
66 outfile.write("#unknow lang code Summary(%s)\n" % (lang))
71 if not langs[lang] == 'UTF-8':
73 l = unicode(l, langs[lang]).encode("UTF-8")
74 except UnicodeDecodeError:
75 outfile.write("#transcoding error %%description -l %s\n" % (lang))
80 if re_utf.search(lang):
84 if not lang in langs.keys():
85 outfile.write("#unknow lang code in %%description -l %s\n" % (lang))
87 l = "%s-l %s.UTF-8%s\n" % (r.group(1), lang, r.group(3))
94 parse_spec(sys.stdin, sys.stdout)
96 if __name__ == "__main__":