Mercurial > hgbook
diff ja/fblinks @ 290:b0db5adf11c1 ja_root
fork Japanese translation.
author | Yoshiki Yazawa <yaz@cc.rim.or.jp> |
---|---|
date | Wed, 06 Feb 2008 17:43:11 +0900 |
parents | en/fblinks@9457add294b8 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ja/fblinks Wed Feb 06 17:43:11 2008 +0900 @@ -0,0 +1,67 @@ +#!/usr/bin/python + +import errno +import os +import re +import sys + +hg_id = sys.argv[1] + +dest_dir = sys.argv[2] + +empty_re = re.compile(r'^\s*$') +line_re = re.compile(r'^(\w+)(.*)') + +try: + os.makedirs(dest_dir) +except OSError, err: + if err.errno != errno.EEXIST: + raise + +def feedback(name, text, ctx_id): + return r'\marginpar{\scriptsize \href{http://demesne:8000/book/feedback/submit/%s/%s/%d/}{Feedback}}' % (hg_id, name, ctx_id) + +ctxs = {} +try: + cfp = open(os.path.join(dest_dir, 'rev-' + hg_id + '.ctx'), 'r+') + for line in cfp: + f, l, c = line.split(':', 2) + ctxs[(f, int(l))] = c.strip() +except IOError, err: + if err.errno != errno.ENOENT: raise + cfp = open(os.path.join(dest_dir, 'rev-' + hg_id + '.ctx'), 'w+') + +changes = 0 + +for name in sys.argv[3:]: + if not name.endswith('.tex'): + continue + dest_name = os.path.join(dest_dir, name) + ifp = open(name) + ofp = open(dest_name, 'w') + new_par = True + line_num = 0 + par_num = 0 + for line in ifp: + line_num += 1 + if new_par: + m = line_re.match(line) + if m: + par_num += 1 + ls = line.strip() + if ctxs.get((name, par_num)) != ls: + ctxs[(name, par_num)] = ls + changes += 1 + line = m.group(1) + feedback(name, line, par_num) + m.group(2) + new_par = False + elif not line.strip(): + new_par = True + ofp.write(line) + +if changes: + cfp.seek(0) + print '%s: %d changes' % (cfp.name, changes) + ctxs = ctxs.items() + ctxs.sort() + for ((file, line), content) in ctxs: + cfp.write('%s:%d: %s\n' % (file, line, content))