| 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
|
|
|
|
|