diff options
Diffstat (limited to 'build/mac/generate_localizer')
-rwxr-xr-x | build/mac/generate_localizer | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/build/mac/generate_localizer b/build/mac/generate_localizer deleted file mode 100755 index 089245e..0000000 --- a/build/mac/generate_localizer +++ /dev/null @@ -1,133 +0,0 @@ -#!/usr/bin/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. - -# Usage: generate_localizer [xib_path] [output_dot_h_path] [output_dot_mm_path] -# -# Extracts all the localizable strings that start with "^IDS" from the given -# xib file, and then generates a localizer to process those strings. - -import os.path -import plistlib -import subprocess -import sys - -generate_localizer = "me" - -localizer_template_h = \ -'''// ---------- WARNING ---------- -// THIS IS A GENERATED FILE, DO NOT EDIT IT DIRECTLY! -// -// This header includes the table used by ui_localizer.mm. Nothing else should -// be including this file. -// -// Generated by %(generate_localizer)s. -// Generated from: -// %(xib_files)s -// - -#ifndef UI_LOCALIZER_TABLE_H_ -#define UI_LOCALIZER_TABLE_H_ - -static const UILocalizerResourceMap kUIResources[] = { -%(resource_map_list)s }; -static const size_t kUIResourcesSize = arraysize(kUIResources); - -#endif // UI_LOCALIZER_TABLE_H_ -''' - -def xib_localizable_strings(xib_path): - """Runs ibtool to extract the localizable strings data from the xib.""" - ibtool_cmd = subprocess.Popen(['/usr/bin/ibtool', '--localizable-strings', - xib_path], - stdout=subprocess.PIPE, stderr=subprocess.PIPE) - (cmd_out, cmd_err) = ibtool_cmd.communicate() - if ibtool_cmd.returncode: - sys.stderr.write('%s:0: error: ibtool on "%s" failed (%d):\n%s\n' % - (generate_localizer, xib_path, ibtool_cmd.returncode, - cmd_err)) - return None - return cmd_out - -def extract_resource_constants(plist_localizable_strings_dict, xib_path): - """Extracts all the values that start with ^IDS from the localizable - strings plist entry.""" - constants_list = [] - for item_dict in plist_localizable_strings_dict.itervalues(): - for item_value in item_dict.itervalues(): - if item_value.startswith('^IDS'): - constants_list.append(item_value) - elif item_value.startswith('IDS'): - sys.stderr.write( - '%s:0: warning: %s found a string with questionable prefix, "%s"\n' - % (xib_path, generate_localizer, item_value)); - return constants_list - -def generate_file_contents(constants_list, xib_paths): - """Generates the header listing the constants.""" - # Bounce through a set to uniq the strings, sort the list, then build the - # values we need from it. - constants_list = sorted(set(constants_list)) - constant_list_str = '' - for item in constants_list: - parts = item.split('$', 1) - label_id = parts[0] - if len(parts) == 2: - label_arg_id = parts[1] - else: - label_arg_id = '0' - constant_list_str += ' { "%s", %s, %s },\n' % \ - ( item, label_id[1:], label_arg_id) - # Assemble the contents from the templates. - values_dict = { - 'resource_map_list': constant_list_str, - 'generate_localizer': generate_localizer, - 'xib_files': "\n// ".join(xib_paths), - } - h_file = localizer_template_h % values_dict - return h_file - - -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:] - - 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) - if not plist_string: - return 2 - plist = plistlib.readPlistFromString(plist_string) - - # Extract the resource constant strings - localizable_strings = plist['com.apple.ibtool.document.localizable-strings'] - constants_list = extract_resource_constants(localizable_strings, xib_path) - if not constants_list: - sys.stderr.write("%s:0: warning: %s didn't find any resource strings\n" % - (xib_path, generate_localizer)); - full_constants_list.extend(constants_list) - - # Generate our file contents - h_file_content = \ - generate_file_contents(full_constants_list, xib_paths) - - # Write out the file - file_fd = open(output_path, 'w') - file_fd.write(h_file_content) - file_fd.close() - - return 0 - -if __name__ == '__main__': - sys.exit(Main(sys.argv)) |