diff options
author | Danilo G. Baio <dbaio@FreeBSD.org> | 2021-04-08 00:54:11 +0000 |
---|---|---|
committer | Danilo G. Baio <dbaio@FreeBSD.org> | 2021-04-08 00:58:05 +0000 |
commit | b5f7b600edd24cd1eca235f8fab631821de98e78 (patch) | |
tree | dcf737fd6604794f7a780dcf107afc84f44f30a7 /tools/translate.sh | |
parent | a4888aa345f7eb52766d2753c697fb23df99b902 (diff) | |
download | doc-b5f7b600edd24cd1eca235f8fab631821de98e78.tar.gz doc-b5f7b600edd24cd1eca235f8fab631821de98e78.zip |
Add helper scripts for translations
Already using them on Weblate FreeBSD,
https://translate-dev.freebsd.org/.
Approved by: bcr, gjb (doceng)
Differential Revision: https://reviews.freebsd.org/D29569
Diffstat (limited to 'tools/translate.sh')
-rwxr-xr-x | tools/translate.sh | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/tools/translate.sh b/tools/translate.sh new file mode 100755 index 0000000000..cb4005611d --- /dev/null +++ b/tools/translate.sh @@ -0,0 +1,78 @@ +#!/bin/sh +# +# Copyright (c) 2021 Danilo G. Baio <dbaio@FreeBSD.org> +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +if [ "$1" = "" ] || [ "$2" = "" ]; then + echo "Need to inform which component and|or language." + echo "$0 documentation|website pt_BR|es" + exit 1 +fi + +COMPONENT="$1" +LANGUAGE="$2" + +# po4a-translate option: -k, --keep +# Minimal threshold for translation percentage to keep (i.e. write) +# the resulting file (default: 80). I.e. by default, files have to be +# translated at least at 80% to get written. +# # KEEP_ENV=10 ./tools/translate.sh documentation pt_BR +KEEP="${KEEP_ENV:-80}" + +if [ "$LANGUAGE" = "en" ]; then + echo "Language 'en' can't be translated." + exit 1 +fi + +if [ ! -d "$COMPONENT/content/$LANGUAGE" ]; then + echo "$COMPONENT/content/$LANGUAGE does not exist." + exit 1 +fi + +for pofile in $(find "$COMPONENT/content/$LANGUAGE/" -name "*.po" ); do + name=$(basename -s .po "$pofile") + if [ "$name" = "chapters-order" ]; then + continue + fi + + dirbase=$(dirname "$pofile") + adoc_lang="$dirbase/$name.adoc" + adoc_orig=$(echo "$adoc_lang" | sed s,$COMPONENT/content/$LANGUAGE,$COMPONENT/content/en,) + + echo "....." + echo "$pofile" + + po4a-translate \ + --format asciidoc \ + --option compat=asciidoctor \ + --option yfm_keys=title,part \ + --master "$adoc_orig" \ + --master-charset "UTF-8" \ + --po "$pofile" \ + --localized "$adoc_lang" \ + --localized-charset "UTF-8" \ + --keep "$KEEP" + +done + |