mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-11 03:03:06 +00:00
Scons: update_po target part two: qt4_l10n and layouts_l10n
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17501 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
dc59f0a1c2
commit
8ab80df229
@ -2019,8 +2019,14 @@ if update_po:
|
|||||||
env.msgmerge(f, '$BUILDDIR/common/lyx.pot')
|
env.msgmerge(f, '$BUILDDIR/common/lyx.pot')
|
||||||
# build language_l10n.pot
|
# build language_l10n.pot
|
||||||
env['BUILDERS']['language_l10n'] = Builder(action=utils.env_language_l10n)
|
env['BUILDERS']['language_l10n'] = Builder(action=utils.env_language_l10n)
|
||||||
tar = env.language_l10n('$BUILDDIR/common/language_l10n.pot', '$TOP_SRCDIR/lib/languages')
|
tar1 = env.language_l10n('$BUILDDIR/common/language_l10n.pot', '$TOP_SRCDIR/lib/languages')
|
||||||
Alias('update_po', tar)
|
env['BUILDERS']['qt4_l10n'] = Builder(action=utils.env_qt4_l10n)
|
||||||
|
tar2 = env.qt4_l10n('$BUILDDIR/common/qt4_l10n.pot',
|
||||||
|
['$TOP_SRCDIR/src/frontends/qt4/ui/%s' % x for x in src_frontends_qt4_ui_files])
|
||||||
|
env['BUILDERS']['layouts_l10n'] = Builder(action=utils.env_layouts_l10n)
|
||||||
|
tar3 = env.layouts_l10n('$BUILDDIR/common/layouts_l10n.pot',
|
||||||
|
['$TOP_SRCDIR/lib/layouts/%s' % x for x in lib_layouts_files])
|
||||||
|
Alias('update_po', [tar1, tar2, tar3])
|
||||||
|
|
||||||
|
|
||||||
if build_po:
|
if build_po:
|
||||||
|
@ -2200,6 +2200,7 @@ lib_layouts_files = Split('''
|
|||||||
hollywood.layout
|
hollywood.layout
|
||||||
ijmpc.layout
|
ijmpc.layout
|
||||||
ijmpd.layout
|
ijmpd.layout
|
||||||
|
isprs.layout
|
||||||
jgrga.layout
|
jgrga.layout
|
||||||
kluwer.layout
|
kluwer.layout
|
||||||
latex8.layout
|
latex8.layout
|
||||||
|
@ -146,6 +146,64 @@ def env_language_l10n(target, source, env):
|
|||||||
output.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*<string>(.*)</string>')
|
||||||
|
prop = re.compile(r'\s*<property.*name.*=.*shortcut')
|
||||||
|
for src in source:
|
||||||
|
input = open(env.File(src).abspath)
|
||||||
|
skipNextLine = False
|
||||||
|
for lineno, line in enumerate(input.readlines()):
|
||||||
|
# looking for a line with <string></string>
|
||||||
|
if skipNextLine:
|
||||||
|
skipNextLine = False
|
||||||
|
continue
|
||||||
|
# skip the line after <property name=shortcut>
|
||||||
|
if prop.match(line):
|
||||||
|
skipNextLine = True
|
||||||
|
continue
|
||||||
|
# get lines that match <string>...</string>
|
||||||
|
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 <string>...</string>
|
||||||
|
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)
|
||||||
|
input.close()
|
||||||
|
output.close()
|
||||||
|
|
||||||
|
|
||||||
def createResFromIcon(env, icon_file, rc_file):
|
def createResFromIcon(env, icon_file, rc_file):
|
||||||
''' create a rc file with icon, and return res file (windows only) '''
|
''' create a rc file with icon, and return res file (windows only) '''
|
||||||
if os.name == 'nt':
|
if os.name == 'nt':
|
||||||
|
Loading…
Reference in New Issue
Block a user