Merge "Handle translation of Install Guide and FirstApp"

This commit is contained in:
Jenkins 2015-08-24 13:59:40 +00:00 committed by Gerrit Code Review
commit ce4c62264f
2 changed files with 61 additions and 15 deletions

View File

@ -9,6 +9,7 @@ Release notes
* Remove ``dn2osdbk`` and the ``hotref`` sphinx extension.
* ``autohelp.py``: Can now find options for a project in multiple python
packages.
* ``doc-tools-check-languages``: Handle RST Install Guide and FirstApp.
0.29.1
------

View File

@ -46,9 +46,14 @@ function build_rst {
TAG=""
# We need to extract all strings, so add all supported tags
if [ ${book} = "firstapp" ] ; then
TAG="-t libcloud -t fog"
TAG="-t libcloud -t fog -t dotnet -t pkgcloud -t shade"
fi
tox -evenv "sphinx-build -W -b gettext $TAG ${DOC_DIR}${book}/source/ ${DOC_DIR}${book}/source/locale/"
if [ ${book} = "install-guide" ] ; then
TAG="-t obs -t rdo -t ubuntu -t debian"
fi
tox -evenv "sphinx-build -q -E -W -b gettext $TAG ${DOC_DIR}${book}/source/ \
${DOC_DIR}${book}/source/locale/"
# Merge the common-rst po file in
if [[ -e ${DOC_DIR}common-rst/source/locale/${language}/LC_MESSAGES/common-rst.po ]] ; then
msgcat --use-first -o ${DOC_DIR}${book}/source/locale/${language}/${book}.po \
@ -66,31 +71,55 @@ function build_rst {
bf=$(basename $f)
# Remove .pot
bfname=${bf%.pot}
msgmerge -o ${DOC_DIR}${book}/source/locale/${language}/LC_MESSAGES/${bfname}.po \
msgmerge --silent -o ${DOC_DIR}${book}/source/locale/${language}/LC_MESSAGES/${bfname}.po \
${DOC_DIR}${book}/source/locale/${language}/LC_MESSAGES/${book}.po \
${DOC_DIR}${book}/source/locale/${bf}
msgfmt ${DOC_DIR}${book}/source/locale/${language}/LC_MESSAGES/${bfname}.po \
-o ${DOC_DIR}${book}/source/locale/${language}/LC_MESSAGES/${bfname}.mo
done
# Build all books
if [ ${book} = "firstapp" ] ; then
tox -evenv "sphinx-build -t fog -D language=${language} \
${DOC_DIR}${book}/source/ \
${DOC_DIR}${book}/build-fog/html"
mkdir -p publish-docs/${language}/firstapp-fog
rsync -a ${DOC_DIR}firstapp/build-fog/html/ publish-docs/${language}/firstapp-fog
tox -evenv "sphinx-build -t libcloud -D language=${language} \
${DOC_DIR}${book}/source/ \
${DOC_DIR}${book}/build-libcloud/html"
mkdir -p publish-docs/${language}/firstapp-libcloud
rsync -a ${DOC_DIR}user-guides/build-libcloud/html/ publish-docs/${language}/firstapp-libcloud/
# Firstapp has several variations, build all of them
for tag in libcloud dotnet fog pkgcloud shade; do
tox -evenv "sphinx-build -q -E -t $tag -D language=${language} \
${DOC_DIR}${book}/source/ \
${DOC_DIR}${book}/build-${tag}/html"
mkdir -p publish-docs/${language}/${book}-${tag}
rsync -a ${DOC_DIR}${book}/build-${tag}/html/ \
publish-docs/${language}/${book}-${tag}
done
elif [ ${book} = "install-guide" ] ; then
# Install Guide has several variations, build all of them
title_org=$(grep "title::" ${DOC_DIR}${book}/source/index.rst | \
awk '{print substr($0, index($0, "::")+3)}')
trap "sed -i -e \"s/\.\. title::.*/.. title:: ${title_org}/\" \
${DOC_DIR}${book}/source/index.rst" EXIT
for tag in obs rdo ubuntu debian; do
title=$(grep -m 1 -A 5 ".. only:: ${tag}" \
${DOC_DIR}${book}/source/index.rst | \
sed -n 4p | sed -e 's/^ *//g')
sed -i -e "s/\.\. title::.*/.. title:: ${title}/" \
${DOC_DIR}${book}/source/index.rst
tox -evenv "sphinx-build -q -E -t $tag -D language=${language} \
${DOC_DIR}${book}/source/ \
${DOC_DIR}${book}/build-${tag}/html"
mkdir -p publish-docs/${language}/${book}-${tag}
rsync -a ${DOC_DIR}${book}/build-${tag}/html/ \
publish-docs/${language}/${book}-${tag}
done
else
tox -evenv "sphinx-build -D language=${language} ${DOC_DIR}${book}/source/ \
tox -evenv "sphinx-build -q -E -D language=${language} \
${DOC_DIR}${book}/source/ \
${DOC_DIR}${book}/build/html"
mkdir -p publish-docs/${language}/${book}/
rsync -a ${DOC_DIR}${book}/build/html/ publish-docs/${language}/${book}/
fi
}
function test_language {
language=$1
@ -148,11 +177,27 @@ function handle_draft_language {
mkdir -p publish-docs/draft/$language
for book in ${DRAFTS["$language"]}; do
case "${book}" in
install-guide|config-reference)
config-reference)
mv publish-docs/$language/draft/$book publish-docs/draft/$language/$book
# Remove directory if it's empty and do not fail if it's non-empty
rmdir publish-docs/$language/draft || true
;;
firstapp)
for tag in libcloud dotnet fog pkgcloud shade; do
mv publish-docs/$language/$book-${tag} \
publish-docs/draft/$language/$book-${tag}
done
# Remove directory if it's empty and do not fail if it's non-empty
rmdir publish-docs/$language/ || true
;;
install-guide)
for tag in obs rdo ubuntu debian; do
mv publish-docs/$language/$book-${tag} \
publish-docs/draft/$language/$book-${tag}
done
# Remove directory if it's empty and do not fail if it's non-empty
rmdir publish-docs/$language/ || true
;;
*)
mv publish-docs/$language/$book publish-docs/draft/$language/$book
;;