Merge "Publish translated guides with publishdocs tox job"
This commit is contained in:
commit
565877d46f
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,4 +1,5 @@
|
||||
/doc/build/
|
||||
/publish-docs/
|
||||
/openstacki18n.egg-info/
|
||||
AUTHORS
|
||||
ChangeLog
|
||||
|
@ -218,3 +218,6 @@ htmlhelp_basename = 'i18n-contributor-guide'
|
||||
|
||||
# If true, publish source files
|
||||
html_copy_source = False
|
||||
|
||||
# -- Options for Internationalization output ------------------------------
|
||||
locale_dirs = ['locale/']
|
||||
|
11
tools/add-marker.sh
Executable file
11
tools/add-marker.sh
Executable file
@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ $# != 1 ]] ; then
|
||||
echo "Pass directory to add marker to as single paramter"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# This marker is needed for infra publishing
|
||||
MARKER_TEXT="Project: $ZUUL_PROJECT Ref: $ZUUL_REFNAME Build: $ZUUL_UUID"
|
||||
|
||||
echo $MARKER_TEXT > $1/.root-marker
|
86
tools/build-docs.sh
Executable file
86
tools/build-docs.sh
Executable file
@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# 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.
|
||||
|
||||
# Build English and translated version of the I18n guide.
|
||||
|
||||
set -e
|
||||
|
||||
DOCNAME=doc
|
||||
DIRECTORY=doc
|
||||
|
||||
if [ -x "$(command -v getconf)" ]; then
|
||||
NUMBER_OF_CORES=$(getconf _NPROCESSORS_ONLN)
|
||||
else
|
||||
NUMBER_OF_CORES=2
|
||||
fi
|
||||
|
||||
# build i18n contributor guide page index.html
|
||||
sphinx-build -a -W -j $NUMBER_OF_CORES -b html \
|
||||
-d ${DIRECTORY}/build/doctrees \
|
||||
${DIRECTORY}/source ${DIRECTORY}/build/html/
|
||||
|
||||
if [ "${NO_LANG_BUILD:-0}" = "1" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
sphinx-build -a -W -j $NUMBER_OF_CORES -b gettext \
|
||||
-d ${DIRECTORY}/build/doctrees.gettext \
|
||||
${DIRECTORY}/source ${DIRECTORY}/source/locale/
|
||||
|
||||
# check all language translation resouce
|
||||
for locale in `find ${DIRECTORY}/source/locale/ -maxdepth 1 -type d` ; do
|
||||
# skip if it is not a valid language translation resource.
|
||||
if [ ! -e ${locale}/LC_MESSAGES/${DOCNAME}.po ]; then
|
||||
continue
|
||||
fi
|
||||
language=$(basename $locale)
|
||||
|
||||
echo "===== Building $language translation ====="
|
||||
|
||||
# prepare all translation resources
|
||||
for pot in ${DIRECTORY}/source/locale/*.pot ; do
|
||||
# get filename
|
||||
potname=$(basename $pot)
|
||||
resname=${potname%.pot}
|
||||
echo $resname
|
||||
# merge all translation resources
|
||||
msgmerge --silent -o \
|
||||
${DIRECTORY}/source/locale/${language}/LC_MESSAGES/${resname}.po \
|
||||
${DIRECTORY}/source/locale/${language}/LC_MESSAGES/${DOCNAME}.po \
|
||||
${DIRECTORY}/source/locale/${potname}
|
||||
# compile all translation resources
|
||||
msgfmt -o \
|
||||
${DIRECTORY}/source/locale/${language}/LC_MESSAGES/${resname}.mo \
|
||||
${DIRECTORY}/source/locale/${language}/LC_MESSAGES/${resname}.po
|
||||
done
|
||||
|
||||
# build translated guide
|
||||
# build i18n contributor guide page index.html
|
||||
# TODO(amotoki): Enable -W option in translated version
|
||||
sphinx-build -a -j $NUMBER_OF_CORES -b html -D language=${language} \
|
||||
-d ${DIRECTORY}/build/doctrees.languages/${language} \
|
||||
${DIRECTORY}/source ${DIRECTORY}/build/html/${language}
|
||||
|
||||
# remove newly created files
|
||||
git clean -f -q ${DIRECTORY}/source/locale/${language}/LC_MESSAGES/*.po
|
||||
git clean -f -x -q ${DIRECTORY}/source/locale/${language}/LC_MESSAGES/*.mo
|
||||
git clean -f -x -q ${DIRECTORY}/source/locale/.doctrees
|
||||
# revert changes to po file
|
||||
git reset -q ${DIRECTORY}/source/locale/${language}/LC_MESSAGES/${DOCNAME}.po
|
||||
git checkout -- ${DIRECTORY}/source/locale/${language}/LC_MESSAGES/${DOCNAME}.po
|
||||
done
|
||||
|
||||
# remove newly created pot files
|
||||
rm -f ${DIRECTORY}/source/locale/*.pot
|
16
tox.ini
16
tox.ini
@ -14,7 +14,21 @@ deps = -r{toxinidir}/requirements.txt
|
||||
commands = {posargs}
|
||||
|
||||
[testenv:docs]
|
||||
commands = sphinx-build -W -b html doc/source doc/build/html
|
||||
passenv =
|
||||
# Required by add-marker.sh
|
||||
ZUUL*
|
||||
# Pass NO_LANG_BUILD=1 if you would like to build English version only
|
||||
NO_LANG_BUILD
|
||||
commands =
|
||||
# Build translated guides
|
||||
{toxinidir}/tools/build-docs.sh
|
||||
# Publish
|
||||
mkdir -p publish-docs/developer/i18n
|
||||
rsync -av --delete doc/build/html/ publish-docs/developer/i18n/
|
||||
{toxinidir}/tools/add-marker.sh publish-docs/developer/i18n/
|
||||
whitelist_externals =
|
||||
mkdir
|
||||
rsync
|
||||
|
||||
[testenv:pep8]
|
||||
commands =
|
||||
|
Loading…
Reference in New Issue
Block a user