57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
|
#!/usr/bin/env python
|
||
|
# Copyright (c) 2013 GitHub, Inc.
|
||
|
# Use of this source code is governed by the MIT license that can be
|
||
|
# found in the LICENSE file.
|
||
|
|
||
|
import errno
|
||
|
import optparse
|
||
|
import os
|
||
|
import shutil
|
||
|
import sys
|
||
|
|
||
|
def main(argv):
|
||
|
parser = optparse.OptionParser()
|
||
|
usage = 'usage: %s [options ...] src dest 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) < 4:
|
||
|
print 'ERROR: need src, dest and list of locales'
|
||
|
return 1
|
||
|
|
||
|
src = arglist[1]
|
||
|
dest = arglist[2]
|
||
|
locales = arglist[3:]
|
||
|
|
||
|
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).
|
||
|
dirname = locale
|
||
|
if options.dash_to_underscore:
|
||
|
if locale == 'en-US':
|
||
|
dirname = 'en'
|
||
|
else:
|
||
|
dirname = locale.replace('-', '_')
|
||
|
|
||
|
dirname = os.path.join(dest, dirname + '.lproj')
|
||
|
safe_mkdir(dirname)
|
||
|
shutil.copy2(os.path.join(src, locale + '.pak'),
|
||
|
os.path.join(dirname, 'locale.pak'))
|
||
|
|
||
|
|
||
|
def safe_mkdir(path):
|
||
|
try:
|
||
|
os.makedirs(path)
|
||
|
except OSError as e:
|
||
|
if e.errno != errno.EEXIST:
|
||
|
raise
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
sys.exit(main(sys.argv))
|