| Index: chrome/app/nibs/generate_localizer.py
|
| diff --git a/chrome/app/nibs/generate_localizer.py b/chrome/app/nibs/generate_localizer.py
|
| index 3c846e58fb49e241c55360ad82958bc87794fed2..c93f9d6a3fca70c7fc001fb8d526445fa2326b0f 100755
|
| --- a/chrome/app/nibs/generate_localizer.py
|
| +++ b/chrome/app/nibs/generate_localizer.py
|
| @@ -9,6 +9,9 @@
|
| # Extracts all the localizable strings that start with "^IDS" from the given
|
| # xib file, and then generates a localizer to process those strings.
|
|
|
| +
|
| +import argparse
|
| +import logging
|
| import os
|
| import plistlib
|
| import subprocess
|
| @@ -38,19 +41,19 @@ static const size_t kUIResourcesSize = arraysize(kUIResources);
|
| #endif // CHROME_APP_NIBS_LOCALIZER_TABLE_H_
|
| '''
|
|
|
| -def xib_localizable_strings(xib_path):
|
| +def xib_localizable_strings(xib_path, xcode_path):
|
| """Runs ibtool to extract the localizable strings data from the xib."""
|
| # Take SDKROOT out of the environment passed to ibtool. ibtool itself has
|
| # no need for it, but when ibtool runs via xcrun and Xcode isn't aware of
|
| # the SDK in use, its presence causes an error.
|
| + ibtool_env = os.environ.copy()
|
| if 'SDKROOT' in os.environ:
|
| - ibtool_env = os.environ.copy()
|
| del ibtool_env['SDKROOT']
|
| - else:
|
| - ibtool_env = os.environ
|
| + if xcode_path:
|
| + ibtool_env['DEVELOPER_DIR'] = xcode_path
|
|
|
| - ibtool_cmd = subprocess.Popen(['xcrun', 'ibtool',
|
| - '--localizable-strings', xib_path],
|
| + command = ['xcrun', 'ibtool', '--localizable-strings', xib_path]
|
| + ibtool_cmd = subprocess.Popen(command,
|
| stdout=subprocess.PIPE, stderr=subprocess.PIPE,
|
| env=ibtool_env)
|
| (cmd_out, cmd_err) = ibtool_cmd.communicate()
|
| @@ -104,18 +107,23 @@ def Main(argv=None):
|
| global generate_localizer
|
| generate_localizer = os.path.basename(argv[0])
|
|
|
| - # Args
|
| - if len(argv) < 3:
|
| - sys.stderr.write('%s:0: error: Expected output file and then xibs\n' %
|
| - generate_localizer);
|
| - return 1
|
| - output_path = argv[1];
|
| - xib_paths = argv[2:]
|
| + parser = argparse.ArgumentParser(
|
| + description='Generates a header file that localizes libs.')
|
| + parser.add_argument('--output_path', required=True,
|
| + help='Path to output header file.')
|
| + parser.add_argument('--developer_dir', required=False,
|
| + help='Path to Xcode.')
|
| + parser.add_argument('xibs', nargs='+',
|
| + help='A list of xibs to localize')
|
| + args = parser.parse_args()
|
| +
|
| + output_path = args.output_path
|
| + xib_paths = args.xibs
|
|
|
| full_constants_list = []
|
| for xib_path in xib_paths:
|
| # Run ibtool and convert to something Python can deal with
|
| - plist_string = xib_localizable_strings(xib_path)
|
| + plist_string = xib_localizable_strings(xib_path, args.developer_dir)
|
| if not plist_string:
|
| return 2
|
| plist = plistlib.readPlistFromString(plist_string)
|
|
|