crowdin_sync: Add support for translations upload
Change-Id: I38bda5886ea2c159970e42c0b7120d3236b134d9
diff --git a/crowdin_sync.py b/crowdin_sync.py
index d09b8a6..1d64bc2 100755
--- a/crowdin_sync.py
+++ b/crowdin_sync.py
@@ -109,16 +109,16 @@
def parse_args():
parser = argparse.ArgumentParser(
description="Synchronising CyanogenMod's translations with Crowdin")
- sync = parser.add_mutually_exclusive_group()
- parser.add_argument('-u', '--username', help='Gerrit username',
- required=True)
+ parser.add_argument('-u', '--username', help='Gerrit username')
parser.add_argument('-b', '--branch', help='CyanogenMod branch',
required=True)
parser.add_argument('-c', '--config', help='Custom yaml config')
- sync.add_argument('--no-upload', action='store_true',
- help='Only download CM translations from Crowdin')
- sync.add_argument('--no-download', action='store_true',
- help='Only upload CM source translations to Crowdin')
+ parser.add_argument('--upload-sources', action='store_true',
+ help='Upload sources to Crowdin')
+ parser.add_argument('--upload-translations', action='store_true',
+ help='Upload translations to Crowdin')
+ parser.add_argument('--download', action='store_true',
+ help='Download translations from Crowdin')
return parser.parse_args()
# ################################# PREPARE ################################## #
@@ -155,48 +155,64 @@
# ################################### MAIN ################################### #
-def upload_crowdin(branch, config, no_upload=False):
- if no_upload:
- print('Skipping source translations upload')
- return
-
+def upload_sources_crowdin(branch, config):
if config:
- print('\nUploading Crowdin source translations (custom config)')
+ print('\nUploading sources to Crowdin (custom config)')
check_run(['crowdin-cli',
'--config=%s/crowdin/%s' % (_DIR, config),
'upload', 'sources', '--branch=%s' % branch])
else:
- print('\nUploading Crowdin source translations '
- '(AOSP supported languages)')
+ print('\nUploading sources to Crowdin (AOSP supported languages)')
check_run(['crowdin-cli',
'--config=%s/crowdin/crowdin_%s.yaml' % (_DIR, branch),
'upload', 'sources', '--branch=%s' % branch])
- print('\nUploading Crowdin source translations '
- '(non-AOSP supported languages)')
+ print('\nUploading sources to Crowdin (non-AOSP supported languages)')
check_run(['crowdin-cli',
'--config=%s/crowdin/crowdin_%s_aosp.yaml' % (_DIR, branch),
'upload', 'sources', '--branch=%s' % branch])
-def download_crowdin(base_path, branch, xml, username, config,
- no_download=False):
- if no_download:
- print('Skipping translations download')
- return
-
+def upload_translations_crowdin(branch, config):
if config:
- print('\nDownloading Crowdin translations (custom config)')
+ print('\nUploading translations to Crowdin (custom config)')
+ check_run(['crowdin-cli',
+ '--config=%s/crowdin/%s' % (_DIR, config),
+ 'upload', 'translations', '--branch=%s' % branch,
+ '--no-import-duplicates', '--import-eq-suggestions',
+ '--auto-approve-imported'])
+ else:
+ print('\nUploading translations to Crowdin '
+ '(AOSP supported languages)')
+ check_run(['crowdin-cli',
+ '--config=%s/crowdin/crowdin_%s.yaml' % (_DIR, branch),
+ 'upload', 'translations', '--branch=%s' % branch,
+ '--no-import-duplicates', '--import-eq-suggestions',
+ '--auto-approve-imported'])
+
+ print('\nUploading translations to Crowdin '
+ '(non-AOSP supported languages)')
+ check_run(['crowdin-cli',
+ '--config=%s/crowdin/crowdin_%s_aosp.yaml' % (_DIR, branch),
+ 'upload', 'translations', '--branch=%s' % branch,
+ '--no-import-duplicates', '--import-eq-suggestions',
+ '--auto-approve-imported'])
+
+
+def download_crowdin(base_path, branch, xml, username, config):
+ if config:
+ print('\nDownloading translations from Crowdin (custom config)')
check_run(['crowdin-cli',
'--config=%s/crowdin/%s' % (_DIR, config),
'download', '--branch=%s' % branch])
else:
- print('\nDownloading Crowdin translations (AOSP supported languages)')
+ print('\nDownloading translations from Crowdin '
+ '(AOSP supported languages)')
check_run(['crowdin-cli',
'--config=%s/crowdin/crowdin_%s.yaml' % (_DIR, branch),
'download', '--branch=%s' % branch])
- print('\nDownloading Crowdin translations '
+ print('\nDownloading translations from Crowdin '
'(non-AOSP supported languages)')
check_run(['crowdin-cli',
'--config=%s/crowdin/crowdin_%s_aosp.yaml' % (_DIR, branch),
@@ -323,9 +339,17 @@
if not check_files(files):
sys.exit(1)
- upload_crowdin(default_branch, args.config, args.no_upload)
- download_crowdin(base_path, default_branch, (xml_android, xml_extra),
- args.username, args.config, args.no_download)
+ if args.download and args.username is None:
+ print('Argument -u/--username is required for translations download')
+ sys.exit(1)
+
+ if args.upload_sources:
+ upload_sources_crowdin(default_branch, args.config)
+ if args.upload_translations:
+ upload_translations_crowdin(default_branch, args.config)
+ if args.download:
+ download_crowdin(base_path, default_branch, (xml_android, xml_extra),
+ args.username, args.config)
print('\nDone!')
if __name__ == '__main__':