From f57bcfc4294bafb72fad9d264c33b3e68d8f9422 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Thu, 29 May 2014 17:13:24 +0800 Subject: [PATCH] mac: Fix en-US locale. --- atom.gyp | 24 ++++++++++++------- tools/mac/apply_locales.py | 45 +++++++++++++++++++++++++++++++++++ tools/mac/make_locale_dirs.sh | 4 ++-- 3 files changed, 62 insertions(+), 11 deletions(-) create mode 100755 tools/mac/apply_locales.py diff --git a/atom.gyp b/atom.gyp index ddc2a6b3760..211e0347f23 100644 --- a/atom.gyp +++ b/atom.gyp @@ -221,6 +221,14 @@ 'atom/app/atom_library_main.cc', 'atom/app/atom_library_main.h', ], + 'locales': [ + 'am', 'ar', 'bg', 'bn', 'ca', 'cs', 'da', 'de', 'el', 'en-GB', + 'en-US', 'es-419', 'es', 'et', 'fa', 'fi', 'fil', 'fr', 'gu', 'he', + 'hi', 'hr', 'hu', 'id', 'it', 'ja', 'kn', 'ko', 'lt', 'lv', + 'ml', 'mr', 'ms', 'nb', 'nl', 'pl', 'pt-BR', 'pt-PT', 'ro', 'ru', + 'sk', 'sl', 'sr', 'sv', 'sw', 'ta', 'te', 'th', 'tr', 'uk', + 'vi', 'zh-CN', 'zh-TW', + ], 'atom_source_root': '!@(<(apply_locales_cmd) -d ZZLOCALE.lproj <(locales))', + ], + }, 'action': [ 'tools/mac/make_locale_dirs.sh', - '<@(locales)', + '<@(locale_dirs)', ], }, ] diff --git a/tools/mac/apply_locales.py b/tools/mac/apply_locales.py new file mode 100755 index 00000000000..a657aa7ef27 --- /dev/null +++ b/tools/mac/apply_locales.py @@ -0,0 +1,45 @@ +#!/usr/bin/env 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. + +# TODO: remove this script when GYP has for loops + +import sys +import optparse + +def main(argv): + + parser = optparse.OptionParser() + usage = 'usage: %s [options ...] format_string locale_list' + parser.set_usage(usage.replace('%s', '%prog')) + parser.add_option('-d', dest='dash_to_underscore', action="store_true", + default=False, + help='map "en-US" to "en" and "-" to "_" in locales') + + (options, arglist) = parser.parse_args(argv) + + if len(arglist) < 3: + print 'ERROR: need string and list of locales' + return 1 + + str_template = arglist[1] + locales = arglist[2:] + + results = [] + for locale in locales: + # For Cocoa to find the locale at runtime, it needs to use '_' instead + # of '-' (http://crbug.com/20441). Also, 'en-US' should be represented + # simply as 'en' (http://crbug.com/19165, http://crbug.com/25578). + if options.dash_to_underscore: + if locale == 'en-US': + locale = 'en' + locale = locale.replace('-', '_') + results.append(str_template.replace('ZZLOCALE', locale)) + + # Quote each element so filename spaces don't mess up GYP's attempt to parse + # it into a list. + print ' '.join(["'%s'" % x for x in results]) + +if __name__ == '__main__': + sys.exit(main(sys.argv)) \ No newline at end of file diff --git a/tools/mac/make_locale_dirs.sh b/tools/mac/make_locale_dirs.sh index c479b653da2..7636b15e6ce 100755 --- a/tools/mac/make_locale_dirs.sh +++ b/tools/mac/make_locale_dirs.sh @@ -33,7 +33,7 @@ fi cd "${RESOURCES_DIR}" for dir in "${@}"; do - if [[ ! -d "${dir}.lproj" ]]; then - mkdir "${dir}.lproj" + if [[ ! -d "${dir}" ]]; then + mkdir "${dir}" fi done