OLD | NEW |
1 # This Source Code Form is subject to the terms of the Mozilla Public | 1 # This Source Code Form is subject to the terms of the Mozilla Public |
2 # License, v. 2.0. If a copy of the MPL was not distributed with this | 2 # License, v. 2.0. If a copy of the MPL was not distributed with this |
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. | 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
4 | 4 |
5 import re | 5 import re |
6 import os | 6 import os |
7 import sys | 7 import sys |
8 import codecs | 8 import codecs |
9 import json | 9 import json |
10 import urlparse | 10 import urlparse |
(...skipping 23 matching lines...) Expand all Loading... |
34 'sv': 'sv-SE', | 34 'sv': 'sv-SE', |
35 'ur': 'ur-PK', | 35 'ur': 'ur-PK', |
36 } | 36 } |
37 | 37 |
38 CROWDIN_AP_URL = 'https://api.crowdin.com/api/project' | 38 CROWDIN_AP_URL = 'https://api.crowdin.com/api/project' |
39 FIREFOX_RELEASES_URL = 'http://www.mozilla.org/en-US/firefox/all.html' | 39 FIREFOX_RELEASES_URL = 'http://www.mozilla.org/en-US/firefox/all.html' |
40 FIREFOX_LP_URL = 'https://addons.mozilla.org/en-US/firefox/language-tools/' | 40 FIREFOX_LP_URL = 'https://addons.mozilla.org/en-US/firefox/language-tools/' |
41 CHROMIUM_DEB_URL = 'https://packages.debian.org/sid/all/chromium-l10n/filelist' | 41 CHROMIUM_DEB_URL = 'https://packages.debian.org/sid/all/chromium-l10n/filelist' |
42 | 42 |
43 | 43 |
| 44 def read_locale_config(baseDir, platform, metadata): |
| 45 if platform != 'generic': |
| 46 import buildtools.packagerChrome as packager |
| 47 localeDir = os.path.join(baseDir, '_locales') |
| 48 localeConfig = { |
| 49 'default_locale': packager.defaultLocale, |
| 50 } |
| 51 else: |
| 52 localeDir = os.path.join( |
| 53 baseDir, *metadata.get('locales', 'base_path').split('/') |
| 54 ) |
| 55 localeConfig = { |
| 56 'default_locale': metadata.get('locales', 'default_locale') |
| 57 } |
| 58 |
| 59 localeConfig['base_path'] = localeDir |
| 60 |
| 61 locales = [(locale.replace('_', '-'), os.path.join(localeDir, locale)) |
| 62 for locale in os.listdir(localeDir)] |
| 63 localeConfig['locales'] = dict(locales) |
| 64 |
| 65 return localeConfig |
| 66 |
| 67 |
44 def crowdin_request(project_name, action, key, get={}, post_data=None, | 68 def crowdin_request(project_name, action, key, get={}, post_data=None, |
45 headers={}, raw=False): | 69 headers={}, raw=False): |
46 """Perform a call to crowdin and raise an Exception on failure.""" | 70 """Perform a call to crowdin and raise an Exception on failure.""" |
47 request = urllib2.Request( | 71 request = urllib2.Request( |
48 '{}/{}/{}?{}'.format(CROWDIN_AP_URL, | 72 '{}/{}/{}?{}'.format(CROWDIN_AP_URL, |
49 urllib.quote(project_name), | 73 urllib.quote(project_name), |
50 urllib.quote(action), | 74 urllib.quote(action), |
51 urllib.urlencode(dict(get, key=key, json=1))), | 75 urllib.urlencode(dict(get, key=key, json=1))), |
52 post_data, | 76 post_data, |
53 headers, | 77 headers, |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 # Remove any extra files | 318 # Remove any extra files |
295 for dir, files in dirs.iteritems(): | 319 for dir, files in dirs.iteritems(): |
296 baseDir = os.path.join(localeConfig['base_path'], dir) | 320 baseDir = os.path.join(localeConfig['base_path'], dir) |
297 if not os.path.exists(baseDir): | 321 if not os.path.exists(baseDir): |
298 continue | 322 continue |
299 for file in os.listdir(baseDir): | 323 for file in os.listdir(baseDir): |
300 path = os.path.join(baseDir, file) | 324 path = os.path.join(baseDir, file) |
301 valid_extension = file.endswith('.json') | 325 valid_extension = file.endswith('.json') |
302 if os.path.isfile(path) and valid_extension and not file in files: | 326 if os.path.isfile(path) and valid_extension and not file in files: |
303 os.remove(path) | 327 os.remove(path) |
OLD | NEW |