path2 = os.path.normpath(os.path.realpath(base)).split(os.sep)
if path1[:len(path2)] != path2:
print "Path %s is not under top source directory" % path
- return os.path.join(*path1[len(path2):])
+ path3 = os.path.join(*path1[len(path2):]);
+ # replace all \ by / such that we get the same comments on Windows and *nix
+ path3 = path3.replace('\\', '/')
+ return path3
def ui_l10n(input_files, output, base):
'''Generate pot file from lib/ui/*'''
output = open(output, 'w')
Submenu = re.compile(r'^[^#]*Submenu\s+"([^"]*)"')
+ Popupmenu = re.compile(r'^[^#]*PopupMenu\s+"[^"]+"\s+"([^"]*)"')
Toolbar = re.compile(r'^[^#]*Toolbar\s+"[^"]+"\s+"([^"]*)"')
Item = re.compile(r'[^#]*Item\s+"([^"]*)"')
+ TableInsert = re.compile(r'[^#]*TableInsert\s+"([^"]*)"')
for src in input_files:
input = open(src)
for lineno, line in enumerate(input.readlines()):
if Submenu.match(line):
(string,) = Submenu.match(line).groups()
string = string.replace('_', ' ')
+ elif Popupmenu.match(line):
+ (string,) = Popupmenu.match(line).groups()
elif Toolbar.match(line):
(string,) = Toolbar.match(line).groups()
elif Item.match(line):
(string,) = Item.match(line).groups()
+ elif TableInsert.match(line):
+ (string,) = TableInsert.match(line).groups()
else:
continue
- string = string.replace('\\', '\\\\').replace('"', '')
+ string = string.replace('"', '')
if string != "":
print >> output, '#: %s:%d\nmsgid "%s"\nmsgstr ""\n' % \
(relativePath(src, base), lineno+1, string)
'''Generate pot file from lib/language'''
output = open(output, 'w')
# assuming only one language file
+ reg = re.compile('[\w-]+\s+[\w"]+\s+"([\w \-\(\)]+)"\s+(true|false)\s+[\w-]+\s+\w+\s+"[^"]*"')
input = open(input_files[0])
for lineno, line in enumerate(input.readlines()):
if line[0] == '#':
continue
- items = line.split('"')
- # empty lines?
- if len(items) < 3:
- continue
# From:
# afrikaans afrikaans "Afrikaans" false iso8859-15 af_ZA ""
# To:
# #: lib/languages:2
# msgid "Afrikaans"
# msgstr ""
- # I do not care extra "s like "af_ZA"
- print >> output, '#: %s:%d\nmsgid "%s"\nmsgstr ""\n' % (relativePath(input_files[0], base), lineno+1, items[1])
+ if reg.match(line):
+ print >> output, '#: %s:%d\nmsgid "%s"\nmsgstr ""\n' % \
+ (relativePath(input_files[0], base), lineno+1, reg.match(line).groups()[0])
+ else:
+ print "Error: Unable to handle line:"
+ print line
+ sys.exit(1)
input.close()
output.close()