Created
June 29, 2023 13:11
-
-
Save taozuhong/0d68bab0933f06d50a332573cc038509 to your computer and use it in GitHub Desktop.
Generate translation with AI
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# set -x | |
# 用戶應按需修改以下默認值: | |
language="en" | |
usage() # 本腳本的用法 | |
{ | |
echo "用法:$0 [选项] <POT 或 PO文件>" | |
echo "根据 POT 或 PO文件搜索其目录内的 LINGUAS 文件并翻译之,默认语言为英语 en-US" | |
echo "可用选项为:" | |
echo " -l 待翻译文本语言编码" | |
echo " -h 顯示本幫助信息,然後退出" | |
exit $1 | |
} | |
# 執行本地化工作 | |
while getopts l:h opt | |
do | |
case $opt in | |
l) language=$OPTARG ;; | |
h) usage 0 ;; | |
*) usage 0 ;; | |
esac | |
done | |
[ $# -eq 0 ] && usage 0; | |
linguas="$(dirname "$1")/LINGUAS" | |
echo $0 $language $linguas $1 | |
lang_list=($(<$linguas)); | |
for lang_dest in "${lang_list[@]}" | |
do | |
tran="trans -no-warn -b $language:${lang_dest/_/-}" | |
echo -n "正在翻译: $lang_dest ......" | |
while read -r line | |
do | |
if [ "$line" = 'msgstr ""' -a -n "$orig_str" ] | |
then | |
tran_str="$($tran "$orig_str" || $tran "$orig_str")" # 盡量避免因網絡問題而翻譯失敗 | |
if [ -n "$tran_str" ] | |
then | |
echo msgstr \"$tran_str\" | |
fi | |
else | |
echo -E "$line" | |
orig_str=$(echo $line | sed -n 's/msgid "\(..*\)"/\1/p') | |
fi >> $lang_dest.po | |
[ "$line" = 'msgstr ""' -a -n "$orig_str" ] && echo -n . | |
done < "$1" | |
echo [done] | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment