summaryrefslogtreecommitdiffstats
path: root/build/apply_locales.py
blob: 6af7280fadc82ca17c7ea4237cac0a74007b94ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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))