Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(629)

Unified Diff: build/mac/generate_localizer

Issue 334049: Move Mac build tool scripts only used by chrome.gyp from build/mac into chrome/tools/build/mac (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/mac/dump_app_syms ('k') | build/mac/pkg-dmg » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/mac/generate_localizer
===================================================================
--- build/mac/generate_localizer (revision 30217)
+++ build/mac/generate_localizer (working copy)
@@ -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))
« no previous file with comments | « build/mac/dump_app_syms ('k') | build/mac/pkg-dmg » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698