X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=development%2Fscons%2Fscons_utils.py;h=bb924cafc86d2c5248871278c0a04b4c020301f6;hb=8cc88bf1ecbbe2f09d310403726f1145d49236cf;hp=3fe960ee6d0e86e7d8e4cf2741fbb1dc60eb9f6b;hpb=8ab80df229db5d6e786ae95f11d2f12456430140;p=lyx.git diff --git a/development/scons/scons_utils.py b/development/scons/scons_utils.py index 3fe960ee6d..bb924cafc8 100644 --- a/development/scons/scons_utils.py +++ b/development/scons/scons_utils.py @@ -113,93 +113,12 @@ def env_toc(target, source, env): doc_toc.build_toc(str(target[0]), [file.abspath for file in source]) -def relativePath(env, path): - '''return relative path from top source dir''' - # full pathname of path - path1 = os.path.normpath(env.File(path).abspath).split(os.sep) - path2 = os.path.normpath(env.Dir('$TOP_SRCDIR').abspath).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):]) - - -def env_language_l10n(target, source, env): - '''Generate pot file from lib/language''' - input = open(env.File(source[0]).abspath) +def env_cat(target, source, env): + '''Cat source > target. Avoid pipe to increase portability''' output = open(env.File(target[0]).abspath, 'w') - for lineno, line in enumerate(input.readlines()): - if line[0] == '#': - continue - items = line.split('"') - # empty lines? - if len(items) != 5: - print 'Warning: this line looks strange:' - print line - # From: - # afrikaans afrikaans "Afrikaans" false iso8859-15 af_ZA "" - # To: - # #: lib/languages:2 - # msgid "Afrikaans" - # msgstr "" - print >> output, '#: %s:%d\nmsgid "%s"\nmsgstr ""\n' % (relativePath(env, source[0]), lineno+1, items[1]) - input.close() - output.close() - - -def env_qt4_l10n(target, source, env): - '''Generate pot file from src/frontends/qt4/ui/*.ui''' - output = open(env.File(target[0]).abspath, 'w') - pat = re.compile(r'\s*(.*)') - prop = re.compile(r'\s* - if skipNextLine: - skipNextLine = False - continue - # skip the line after - if prop.match(line): - skipNextLine = True - continue - # get lines that match ... - if pat.match(line): - (string,) = pat.match(line).groups() - string = string.replace('&', '&').replace('<', '<').replace('>', '>').replace('"', r'\"') - print >> output, '#: %s:%d\nmsgid "%s"\nmsgstr ""\n' % \ - (relativePath(env, src), lineno+1, string) - input.close() - output.close() - - -def env_layouts_l10n(target, source, env): - '''Generate pot file from lib/layouts/*.layout and *.inc''' - output = open(env.File(target[0]).abspath, 'w') - Style = re.compile(r'^Style\s+(.*)') - # include ???LabelString???, but exclude comment lines - LabelString = re.compile(r'^[^#]*LabelString\S*\s+(.*)') - GuiName = re.compile(r'\s*GuiName\s+(.*)') - ListName = re.compile(r'\s*ListName\s+(.*)') for src in source: input = open(env.File(src).abspath) - for lineno, line in enumerate(input.readlines()): - # get lines that match ... - if Style.match(line): - (string,) = Style.match(line).groups() - string = string.replace('_', ' ') - elif LabelString.match(line): - (string,) = LabelString.match(line).groups() - elif GuiName.match(line): - (string,) = GuiName.match(line).groups() - elif ListName.match(line): - (string,) = ListName.match(line).groups() - else: - continue - string = string.replace('\\', '\\\\').replace('"', '') - if string != "": - print >> output, '#: %s:%d\nmsgid "%s"\nmsgstr ""\n' % \ - (relativePath(env, src), lineno+1, string) + output.write(input.read()) input.close() output.close()