Updated translate script

Signed-off-by: Alexander Borsuk <me@alex.bio>
This commit is contained in:
Alexander Borsuk 2021-07-27 22:16:28 +02:00 committed by Alexander Borsuk
parent c59766cfe7
commit e8b509ecc0

View file

@ -1,6 +1,12 @@
#!/bin/bash
set -e -u
# Install translate-shell before using this script.
# Use `brew install translate-shell` on Mac OS X.
# There is a rate-limit for Google which can be work-arounded by using
# another IP or IPv6.
set -euo pipefail
case $# in
1) SRC=en
@ -9,22 +15,24 @@ case $# in
2) SRC="$1"
WORD="$2"
;;
*) echo "Usage: $0 word_in_English"
*) echo "Usage: $0 word_or_text_in_English"
echo " or"
echo " $0 language_code word_in_given_language"
echo " $0 source_language_code word_or_text_in_given_language"
exit 1
;;
esac
LANGUAGES=( en ar cs da de el es fi fr he hu id it ja ko nb nl pl pt ro ru sk sv sw th tr uk vi zh-CN zh-TW )
# Note: default Google engine doesn't properly support European Portuguese (pt-PT)
# and always produces Brazilian translations.
LANGUAGES=( en ru ar be bg cs da de el es fa fi fr he hu id it ja ko nb nl pl pt-PT pt-BR ro ru sk sv sw th tr uk vi zh-CN zh-TW )
for lang in "${LANGUAGES[@]}"; do
TRANSLATION=$(trans -b "$SRC:$lang" "$WORD" | sed 's/ *//')
# Use our categories.txt names for Chinese.
if [[ $lang == "zh-CN" ]]; then
lang="zh-Hans";
elif [[ $lang == "zh-TW" ]]; then
lang="zh-Hant";
fi
# Correct language codes to ours.
case $lang in
zh-CN) lang="zh-Hans" ;;
zh-TW) lang="zh-Hant" ;;
pt-PT) lang="pt" ;;
esac
echo "$lang:$(tr '[:lower:]' '[:upper:]' <<< ${TRANSLATION:0:1})${TRANSLATION:1}"
done