
The existing function pull_from_zanata would only work for the simple Python project case of pulling translations from Zanata -- with only locales directory and trivial rules to apply, with no real hope of working for Horizon or OpenStack Manuals, given the current functionality of the Zanata CLI utility. Rewrite it to download every translation from Zanata and perform some checks by hand if we keep the file or remove it. This also required refactoring a large portion of cleanup_po_files so both functions could leverage the same code. OpenStack Manuals treats downloaded translations sufficiently different that a similar function was required. This also adds full support for Horizon and OpenStack Manuals projects, including jobs, as well as new job templates to make it easier to transition projects to pulling from Zanata. Adding -zanata jobs for the Python projects and django_openstack_auth is not required, they are already present. Change-Id: I5b9f2eca7f099c56057fc5d09b4bbfe5ea5c596d
92 lines
2.5 KiB
Bash
Executable File
92 lines
2.5 KiB
Bash
Executable File
#!/bin/bash -xe
|
|
|
|
# Copyright 2013 IBM Corp.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
# The script is to pull the translations from Transifex,
|
|
# and push to Gerrit.
|
|
|
|
PROJECT=$1
|
|
SOFTWARE="Transifex"
|
|
|
|
if [ -n "$2" -a "$2" = "zanata" ]; then
|
|
SOFTWARE="Zanata"
|
|
fi
|
|
|
|
source /usr/local/jenkins/slave_scripts/common_translation_update.sh
|
|
|
|
init_manuals "$PROJECT"
|
|
|
|
setup_git
|
|
setup_review "$SOFTWARE"
|
|
setup_translation
|
|
|
|
setup_manuals "$PROJECT"
|
|
|
|
# Pull updated translations from Transifex, or Zanata.
|
|
case "$SOFTWARE" in
|
|
Transifex)
|
|
# Download new files.
|
|
# Also downloads updates for existing files that are
|
|
# translated to a certain amount as configured in setup_manuals.
|
|
# The function setup_manuals will setup most files --minimum-perc=75
|
|
# for most files.
|
|
tx pull -a -f
|
|
|
|
# Pull upstream translations of all downloaded files but do not
|
|
# download new files.
|
|
# Use lower percentage here to update the existing files.
|
|
tx pull -f --minimum-perc=50
|
|
;;
|
|
Zanata)
|
|
pull_from_zanata_manuals "$PROJECT"
|
|
;;
|
|
esac
|
|
|
|
# Compress downloaded po files
|
|
# Only touch glossary in openstack-manuals but not in any other
|
|
# repository.
|
|
case "$project" in
|
|
openstack-manuals)
|
|
compress_manual_po_files "doc" 1
|
|
;;
|
|
api-site)
|
|
compress_manual_po_files "api-ref-guides" 0
|
|
compress_manual_po_files "api-quick-start" 0
|
|
compress_manual_po_files "api-ref" 0
|
|
compress_manual_po_files "openstack-firstapp" 0
|
|
;;
|
|
ha-guide|operations-guide)
|
|
compress_manual_po_files "doc" 0
|
|
;;
|
|
security-doc)
|
|
compress_manual_po_files "security-guide" 0
|
|
;;
|
|
esac
|
|
|
|
# Add imported upstream translations to git
|
|
for FILE in ${DocFolder}/*; do
|
|
DOCNAME=${FILE#${DocFolder}/}
|
|
if [ -d ${DocFolder}/${DOCNAME}/locale ] ; then
|
|
git add ${DocFolder}/${DOCNAME}/locale/*
|
|
fi
|
|
if [ -d ${DocFolder}/${DOCNAME}/source/locale ] ; then
|
|
git add ${DocFolder}/${DOCNAME}/source/locale/*
|
|
fi
|
|
done
|
|
|
|
filter_commits
|
|
|
|
send_patch
|