From bc5df5cc9c2b11524938281f1b2043b185373020 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 22 Feb 2013 23:36:32 +0000 Subject: Some i18n stuff. --- src/tools/wscript | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/tools/wscript') diff --git a/src/tools/wscript b/src/tools/wscript index c843c61d8..8af3d06a5 100644 --- a/src/tools/wscript +++ b/src/tools/wscript @@ -1,3 +1,8 @@ +import os +import glob +from waflib import Logs +import i18n + def build(bld): for t in ['makedcp', 'servomatic_cli', 'servomatictest']: obj = bld(features = 'cxx cxxprogram') @@ -17,3 +22,10 @@ def build(bld): if bld.env.TARGET_WINDOWS: obj.source += ' ../../windows/dvdomatic.rc' obj.target = t + +def pot(bld): + os.system('xgettext -d dvdomatic -s --keyword=_ -p build/src/tools -o dvdomatic.pot %s' % os.path.join('src', 'tools', 'dvdomatic.cc')) + +def mo(bld): + i18n.po_to_mo(os.path.join('src', 'tools'), 'dvdomatic') + -- cgit v1.2.3 From 7913cba90bccb9501b63a0518c58abbd5a6b330d Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 23 Feb 2013 00:12:11 +0000 Subject: Try to centralise .pot building. --- i18n.py | 11 +++++++++++ src/lib/wscript | 9 ++------- src/tools/wscript | 2 +- src/wx/wscript | 8 +------- 4 files changed, 15 insertions(+), 15 deletions(-) (limited to 'src/tools/wscript') diff --git a/i18n.py b/i18n.py index d5531834b..10eaa38e9 100644 --- a/i18n.py +++ b/i18n.py @@ -2,6 +2,17 @@ import glob import os from waflib import Logs +def pot(dir, sources, name): + s = "" + for f in sources.split('\n'): + t = f.strip() + if len(t) > 0: + s += (os.path.join(dir, t)) + " " + + Logs.info('Making %s.pot' % os.path.join('build', dir, name)) + os.system('xgettext -d %s -s --keyword=_ -p %s -o %s.pot %s' % (name, os.path.join('build', dir), name, s)) + + def po_to_mo(dir, name): for f in glob.glob(os.path.join(dir, 'po', '*.po')): diff --git a/src/lib/wscript b/src/lib/wscript index ee89ad085..59047c70d 100644 --- a/src/lib/wscript +++ b/src/lib/wscript @@ -1,4 +1,5 @@ import os +import i18n sources = """ ab_transcode_job.cc @@ -68,10 +69,4 @@ def build(bld): obj.target = 'dvdomatic' def pot(bld): - s = "" - for f in sources.split('\n'): - t = f.strip() - if len(t) > 0: - s += (os.path.join('src', 'lib', t)) + " " - - os.system('xgettext -d libdvdomatic -s --keyword=_ -p build/src/lib -o libdvdomatic.pot %s' % s) + i18n.pot(os.path.join('src', 'lib'), sources, 'libdvdomatic') diff --git a/src/tools/wscript b/src/tools/wscript index 8af3d06a5..de130ce17 100644 --- a/src/tools/wscript +++ b/src/tools/wscript @@ -24,7 +24,7 @@ def build(bld): obj.target = t def pot(bld): - os.system('xgettext -d dvdomatic -s --keyword=_ -p build/src/tools -o dvdomatic.pot %s' % os.path.join('src', 'tools', 'dvdomatic.cc')) + i18n.pot(os.path.join('src', 'tools'), 'dvdomatic.cc', 'dvdomatic') def mo(bld): i18n.po_to_mo(os.path.join('src', 'tools'), 'dvdomatic') diff --git a/src/wx/wscript b/src/wx/wscript index 95cdbc8f0..a0a4bbe8b 100644 --- a/src/wx/wscript +++ b/src/wx/wscript @@ -39,13 +39,7 @@ def build(bld): obj.target = 'dvdomatic-wx' def pot(bld): - s = "" - for f in sources.split('\n'): - t = f.strip() - if len(t) > 0: - s += (os.path.join('src', 'wx', t)) + " " - - os.system('xgettext -d libdvdomatic-wx -s --keyword=_ -p build/src/wx -o libdvdomatic-wx.pot %s' % s) + i18n.pot(os.path.join('src', 'wx'), sources, 'libdvdomatic-wx') def mo(bld): i18n.po_to_mo(os.path.join('src', 'wx'), 'libdvdomatic-wx') -- cgit v1.2.3 From 3940c9ceea90f99d18792bb9ea6074ca65d7fed9 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 28 Feb 2013 23:16:13 +0000 Subject: Build and install mo files from po. --- i18n.py | 16 ++++++---------- src/lib/wscript | 2 ++ src/tools/wscript | 6 ++---- src/wscript | 4 ---- src/wx/wscript | 6 ++---- wscript | 5 +---- 6 files changed, 13 insertions(+), 26 deletions(-) (limited to 'src/tools/wscript') diff --git a/i18n.py b/i18n.py index c22cbdb95..ab7f6843b 100644 --- a/i18n.py +++ b/i18n.py @@ -17,15 +17,11 @@ def pot(dir, sources, name, all = False): os.system('xgettext -d %s -s --keyword=_ --add-comments=/ -p %s -o %s.pot %s' % (name, os.path.join('build', dir), name, s)) -def po_to_mo(dir, name): - for f in glob.glob(os.path.join(dir, 'po', '*.po')): - +def po_to_mo(dir, name, bld): + for f in glob.glob(os.path.join(os.getcwd(), dir, 'po', '*.po')): lang = os.path.basename(f).replace('.po', '') - out = os.path.join('build', dir, 'mo', lang, '%s.mo' % name) - try: - os.makedirs(os.path.dirname(out)) - except: - pass + po = os.path.join('po', '%s.po' % lang) + mo = os.path.join('mo', lang, '%s.mo' % name) - os.system('msgfmt %s -o %s' % (f, out)) - Logs.info('%s -> %s' % (f, out)) + bld(rule = 'msgfmt ${SRC} -o ${TGT}', source = bld.path.make_node(po), target = bld.path.get_bld().make_node(mo)) + bld.install_files(os.path.join('${PREFIX}', 'share', 'locale', lang, 'LC_MESSAGES'), mo) diff --git a/src/lib/wscript b/src/lib/wscript index 59047c70d..6ddb94851 100644 --- a/src/lib/wscript +++ b/src/lib/wscript @@ -68,5 +68,7 @@ def build(bld): obj.source = sources obj.target = 'dvdomatic' + i18n.po_to_mo(os.path.join('src', 'lib'), 'libdvdomatic', bld) + def pot(bld): i18n.pot(os.path.join('src', 'lib'), sources, 'libdvdomatic') diff --git a/src/tools/wscript b/src/tools/wscript index de130ce17..64d5efe56 100644 --- a/src/tools/wscript +++ b/src/tools/wscript @@ -23,9 +23,7 @@ def build(bld): obj.source += ' ../../windows/dvdomatic.rc' obj.target = t + i18n.po_to_mo(os.path.join('src', 'tools'), 'dvdomatic', bld) + def pot(bld): i18n.pot(os.path.join('src', 'tools'), 'dvdomatic.cc', 'dvdomatic') - -def mo(bld): - i18n.po_to_mo(os.path.join('src', 'tools'), 'dvdomatic') - diff --git a/src/wscript b/src/wscript index abe39894d..f7f888acd 100644 --- a/src/wscript +++ b/src/wscript @@ -12,7 +12,3 @@ def pot(bld): bld.recurse('lib') bld.recurse('wx') bld.recurse('tools') - -def mo(bld): - bld.recurse('wx') - bld.recurse('tools') diff --git a/src/wx/wscript b/src/wx/wscript index a0a4bbe8b..92ff440cd 100644 --- a/src/wx/wscript +++ b/src/wx/wscript @@ -38,9 +38,7 @@ def build(bld): obj.source = sources obj.target = 'dvdomatic-wx' + i18n.po_to_mo(os.path.join('src', 'wx'), 'libdvdomatic-wx', bld) + def pot(bld): i18n.pot(os.path.join('src', 'wx'), sources, 'libdvdomatic-wx') - -def mo(bld): - i18n.po_to_mo(os.path.join('src', 'wx'), 'libdvdomatic-wx') - diff --git a/wscript b/wscript index 16ef91f3b..f3df9cfed 100644 --- a/wscript +++ b/wscript @@ -23,7 +23,7 @@ def configure(conf): conf.env.append_value('CXXFLAGS', ['-D__STDC_CONSTANT_MACROS', '-msse', '-mfpmath=sse', '-ffast-math', '-fno-strict-aliasing', '-Wall', '-Wno-attributes', '-Wextra', - '-DLOCALE_DIR="%s/share/locale"' % conf.env.prefix]) + '-DLOCALE_DIR="%s/share/locale"' % conf.env['PREFIX']]) if conf.options.target_windows: conf.env.append_value('CXXFLAGS', ['-DDVDOMATIC_WINDOWS', '-DWIN32_LEAN_AND_MEAN', '-DBOOST_USE_WINDOWS_H', '-DUNICODE']) @@ -267,6 +267,3 @@ def post(ctx): def pot(bld): bld.recurse('src') - -def mo(bld): - bld.recurse('src') -- cgit v1.2.3