Index: build/mac/generate_localizer |
=================================================================== |
--- build/mac/generate_localizer (revision 23016) |
+++ build/mac/generate_localizer (working copy) |
@@ -20,52 +20,22 @@ |
'''// ---------- 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_file)s. |
+// Generated from: |
+// %(xib_files)s |
// |
-#ifndef %(class_name)s_LOCALIZER_H_ |
-#define %(class_name)s_LOCALIZER_H_ |
+#ifndef UI_LOCALIZER_TABLE_H_ |
+#define UI_LOCALIZER_TABLE_H_ |
-#import "chrome/browser/cocoa/ui_localizer.h" |
- |
-// A subclass of ChromeUILocalizer that handles localization based on resource |
-// constants. |
- |
-@interface %(class_name)sLocalizer : ChromeUILocalizer |
-@end |
- |
-#endif // %(class_name)s_LOCALIZER_H_ |
-''' |
- |
-localizer_template_mm = \ |
-'''// ---------- WARNING ---------- |
-// THIS IS A GENERATED FILE, DO NOT EDIT IT DIRECTLY! |
-// |
-// Generated by '%(generate_localizer)s'. |
-// Generated from '%(xib_file)s'. |
-// |
- |
-#import "%(header_name)s" |
- |
-#include "grit/app_strings.h" |
-#include "grit/chromium_strings.h" |
-#include "grit/generated_resources.h" |
- |
-@implementation %(class_name)sLocalizer |
- |
-- (NSString *)localizedStringForString:(NSString *)string { |
- |
- static const ui_localizer::ResourceMap kUIResources[] = { |
+static const UILocalizerResourceMap kUIResources[] = { |
%(resource_map_list)s }; |
- static const size_t kUIResourcesSize = arraysize(kUIResources); |
+static const size_t kUIResourcesSize = arraysize(kUIResources); |
- return ui_localizer::LocalizedStringForKeyFromMapList(string, |
- kUIResources, |
- kUIResourcesSize); |
-} |
- |
-@end |
+#endif // UI_LOCALIZER_TABLE_H_ |
''' |
def xib_localizable_strings(xib_path): |
@@ -95,8 +65,8 @@ |
% (xib_path, generate_localizer, item_value)); |
return constants_list |
-def generate_files_contents(class_name, constants_list, header_name, xib_path): |
- """Generates a localizer files contents from the list of constants.""" |
+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)) |
@@ -112,15 +82,12 @@ |
( item, label_id[1:], label_arg_id) |
# Assemble the contents from the templates. |
values_dict = { |
- 'class_name': class_name, |
- 'header_name': header_name, |
'resource_map_list': constant_list_str, |
'generate_localizer': generate_localizer, |
- 'xib_file': xib_path, |
+ 'xib_files': "\n// ".join(xib_paths), |
} |
h_file = localizer_template_h % values_dict |
- mm_file = localizer_template_mm % values_dict |
- return (h_file, mm_file) |
+ return h_file |
def Main(argv=None): |
@@ -128,49 +95,37 @@ |
generate_localizer = os.path.basename(argv[0]) |
# Args |
- if len(argv) != 4: |
- sys.stderr.write('%s:0: error: Expected xib and output file arguments\n' % |
+ if len(argv) < 4: |
+ sys.stderr.write('%s:0: error: Expected output file and then xibs\n' % |
generate_localizer); |
return 1 |
- xib_path, output_h_path, output_mm_path = argv[1:] |
+ output_path = argv[1]; |
+ xib_paths = argv[2:] |
- # 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) |
+ 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)); |
- # Seed constant_list with an entry so things will compile even though the |
- # array sould really be empty (array_size in the generated file doesn't |
- # like an empty array). |
- constants_list.append('^0'); |
+ # 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) |
- # Name the class based on the output file |
- class_name = os.path.splitext(os.path.basename(output_h_path))[0] |
- suffix = '_localizer' |
- if class_name.endswith(suffix): |
- class_name = class_name[:-len(suffix)]; |
- class_name = class_name.replace('_', ' ').title().replace(' ', ''); |
- |
# Generate our file contents |
- (h_file_content, mm_file_content) = \ |
- generate_files_contents(class_name, constants_list, |
- os.path.basename(output_h_path), |
- xib_path) |
+ h_file_content = \ |
+ generate_file_contents(full_constants_list, xib_paths) |
- # Write out the files |
- file_fd = open(output_h_path, 'w') |
+ # Write out the file |
+ file_fd = open(output_path, 'w') |
file_fd.write(h_file_content) |
file_fd.close() |
- file_fd = open(output_mm_path, 'w') |
- file_fd.write(mm_file_content) |
- file_fd.close() |
return 0 |