summaryrefslogtreecommitdiffstats
path: root/webkit/tools
diff options
context:
space:
mode:
authormnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-24 14:44:16 +0000
committermnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-24 14:44:16 +0000
commite2069f485f5b9b5b2af2079ae52f1f1273397a6b (patch)
treecaca6ba90418e2cf3c5dc75e8e2a19825cd2cb3e /webkit/tools
parent36c565a32e1b60f3f7d02be640959f2ff9b2c762 (diff)
downloadchromium_src-e2069f485f5b9b5b2af2079ae52f1f1273397a6b.zip
chromium_src-e2069f485f5b9b5b2af2079ae52f1f1273397a6b.tar.gz
chromium_src-e2069f485f5b9b5b2af2079ae52f1f1273397a6b.tar.bz2
DevTools l10n: merge Inspector's and DevTools's strings; also, disable l10n until mgr agreeement.
BUG=none TEST=none Review URL: http://codereview.chromium.org/173267 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24094 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/tools')
-rwxr-xr-xwebkit/tools/build/merge_localized_strings.py154
1 files changed, 154 insertions, 0 deletions
diff --git a/webkit/tools/build/merge_localized_strings.py b/webkit/tools/build/merge_localized_strings.py
new file mode 100755
index 0000000..ed1a501
--- /dev/null
+++ b/webkit/tools/build/merge_localized_strings.py
@@ -0,0 +1,154 @@
+#!/usr/bin/env python
+# Copyright (c) 2009 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Helper script to merge DevTools' localized strings for a list of locales.
+
+Gyp doesn't have any built-in looping capability, so this just provides a way to
+loop over a list of locales.
+"""
+
+import getopt
+import os
+import sys
+
+GRIT_DIR = None
+L10N_OUT_DIR = None
+
+
+class Usage(Exception):
+ def __init__(self, msg):
+ self.msg = msg
+
+
+def calc_output(locale):
+ """Determine the file that will be generated for the given locale."""
+ #e.g. '<(PRODUCT_DIR)/resources/inspector/l10n/localizedStrings_da.js',
+ return '%s/localizedStrings_%s.js' % (L10N_OUT_DIR, locale)
+
+
+def calc_inputs(locale):
+ """Determine the files that need processing for the given locale."""
+ inputs = []
+
+ #e.g. '<(grit_out_dir)/inspectorStrings_da.pak'
+ inputs.append('%s/inspectorStrings_%s.js' % (GRIT_DIR, locale))
+
+ #e.g. '<(grit_out_dir)/devtoolsStrings_da.pak'
+ inputs.append('%s/devtoolsStrings_%s.js' % (GRIT_DIR, locale))
+
+ return inputs
+
+
+def list_outputs(locales):
+ """Print the names of files that will be generated for the given locales.
+
+ This is to provide gyp the list of output files, so build targets can
+ properly track what needs to be built.
+ """
+ outputs = []
+ for locale in locales:
+ outputs.append(calc_output(locale))
+ # Quote each element so filename spaces don't mess up gyp's attempt to parse
+ # it into a list.
+ print " ".join(['"%s"' % x for x in outputs])
+
+
+def list_inputs(locales):
+ """Print the names of files that will be processed for the given locales.
+
+ This is to provide gyp the list of input files, so build targets can properly
+ track their prerequisites.
+ """
+ inputs = []
+ for locale in locales:
+ inputs += calc_inputs(locale)
+ # Quote each element so filename spaces don't mess up gyp's attempt to parse
+ # it into a list.
+ print " ".join(['"%s"' % x for x in inputs])
+
+
+def merge_localized_strings(locales):
+ """ Loop over and repack the given locales."""
+ for locale in locales:
+ inputs = []
+ inputs += calc_inputs(locale)
+ output = calc_output(locale)
+ print 'Merging %s -> %s' % (inputs, output)
+ out = open(output, 'w')
+ for inp in inputs:
+ out.write('\n// %s\n\n' % (inp))
+ out.write(open(inp).read())
+ out.close()
+
+
+def main(argv=None):
+ global GRIT_DIR
+ global L10N_OUT_DIR
+
+ if argv is None:
+ argv = sys.argv
+
+ short_options = 'iog:l:h'
+ long_options = 'help'
+
+ print_inputs = False
+ print_outputs = False
+ usage_msg = ''
+
+ helpstr = """\
+Usage: %s [-h] [-i | -o] -g <DIR> -l <DIR> <locale> [...]
+ -h, --help Print this help, then exit.
+ -i Print the expected input file list, then exit.
+ -o Print the expected output file list, then exit.
+ -g DIR GRIT build files output directory.
+ -l DIR Output dir for l10n files.
+ locale [...] One or more locales.""" % (argv[0])
+
+ try:
+ try:
+ opts, locales = getopt.getopt(argv[1:], short_options, long_options)
+ except getopt.GetoptError, msg:
+ raise Usage(str(msg))
+
+ if not locales:
+ usage_msg = 'Please specificy at least one locale to process.\n'
+
+ for o, a in opts:
+ if o in ('-i'):
+ print_inputs = True
+ elif o in ('-o'):
+ print_outputs = True
+ elif o in ('-g'):
+ GRIT_DIR = a
+ elif o in ('-l'):
+ L10N_OUT_DIR = a
+ elif o in ('-h', '--help'):
+ print helpstr
+ return 0
+
+ if not (GRIT_DIR and L10N_OUT_DIR):
+ usage_msg += 'Please specify "-g" and "-l".\n'
+ if print_inputs and print_outputs:
+ usage_msg += 'Please specify only one of "-i" or "-o".\n'
+
+ if usage_msg:
+ raise Usage(usage_msg)
+ except Usage, err:
+ sys.stderr.write(err.msg + '\n')
+ sys.stderr.write(helpstr + '\n')
+ return 2
+
+ if print_inputs:
+ list_inputs(locales)
+ return 0
+
+ if print_outputs:
+ list_outputs(locales)
+ return 0
+
+ merge_localized_strings(locales)
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv))