138fdef0a6
As an early bird for project doc translation we build translated docs here with an extra script. This procedure is usual in the main doc project, but there are different versions of the same script. Later we to centralize such things. Change-Id: I906be044021c93b9aeb644bcd3c550df123a3c83
78 lines
2.9 KiB
Bash
Executable File
78 lines
2.9 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.
|
|
|
|
# Build English and translated version of project documentation
|
|
|
|
DOCNAME=doc
|
|
DIRECTORY=doc
|
|
|
|
# clean build dir
|
|
rm -rf ${DIRECTORY}/build/
|
|
|
|
# create pot files
|
|
sphinx-build -a -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 [ ! -d ${locale}/LC_MESSAGES/ ]; 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}
|
|
# skip if it is not a valid language translation resource.
|
|
if [ ! -e ${locale}/LC_MESSAGES/${DOCNAME}-${resname}.po ]; then
|
|
continue
|
|
fi
|
|
# merge all translation resources
|
|
msgmerge -q -o \
|
|
${DIRECTORY}/source/locale/${language}/LC_MESSAGES/${resname}.po \
|
|
${DIRECTORY}/source/locale/${language}/LC_MESSAGES/${DOCNAME}-${resname}.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 lamguage version
|
|
sphinx-build -a -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 -q -- ${DIRECTORY}/source/locale/${language}/LC_MESSAGES/${DOCNAME}.po
|
|
done
|
|
# remove generated pot files
|
|
git clean -f -q ${DIRECTORY}/source/locale/*.pot
|
|
|
|
# build english version
|
|
sphinx-build -a -b html \
|
|
-d ${DIRECTORY}/build/doctrees \
|
|
${DIRECTORY}/source ${DIRECTORY}/build/html/
|