project-config/jenkins/scripts/upstream_translation_update.sh
Steve Kowalik 9ec48c03fe Support pushing translations to Zanata
In order to migrate to Zanata for translations, we need to modify
the proposal scripts to also upload translations to the Zanata
server. This commit supports most projects (those that make use of
upstream_translation_update.sh), as well as django_openstack_auth.

This does not impact the existing push and pull of
translations to Transifex, and also untouched are the translations
for Horizon or the manuals, which are all handled in separate scripts.

Co-Authored-By: stephane <stephane@alum.mit.edu>
Change-Id: I3bfb188c8b0c0e65f22d7edc30721b163f084fff
2015-06-19 00:19:51 +10:00

56 lines
1.7 KiB
Bash
Executable File

#!/bin/bash -xe
# 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.
PROJECT=$1
if ! echo $ZUUL_REFNAME | grep master; then
exit 0
fi
source /usr/local/jenkins/slave_scripts/common_translation_update.sh
setup_git
setup_translation
setup_project "$PROJECT"
setup_loglevel_vars
setup_loglevel_project "$PROJECT"
extract_messages_log "$PROJECT"
# Add all changed files to git
git add $PROJECT/locale/*
if ! git diff-index --quiet HEAD --; then
# Push .pot changes to transifex
# Transifex project name does not include "."
tx_project=${PROJECT/\./}
tx --debug --traceback push -s -r ${tx_project}.${tx_project}-translations
for level in $LEVELS ; do
# Only push if there is actual content in the file. We check
# that the file contains at least one non-empty msgid string.
if grep -q 'msgid "[^"]' ${PROJECT}/locale/${PROJECT}-log-${level}.pot
then
tx --debug --traceback push -s \
-r ${tx_project}.${tx_project}-log-${level}-translations
fi
done
# The Zanata client works out what to send based on the XML file, push if
# we have one.
if [ -f zanata.xml ]; then
zanata-cli -B -e push
fi
fi