Re: 回复:debian.org 网站中文翻译简繁转换即将面临的问题
Boyuan Yang <[email protected]> Sat, 19 Nov 2016 19:44:14 +0800
| Newsgroups | gmane.linux.debian.internationalization.chinese,gmane.linux.debian.user.chinese.gb,gmane.linux.debian.user.chinese.big5 |
|---|---|
| Organization | USTC |
| Message-ID | <1781964.fFKo0pQhqy@hosiet-tp> |
> 赞成把简体中文和繁体中文分开存放到不同文件。 > 支持进行清理工作,现在Debian官网上的中文网页也太旧了 清理是肯定的,不过分开翻译的话恐怕人手不够。 附件是今天修改过的工具,理论上可以同时支持 opencc 0.4 / 1.x。手边只有 unstable 环境,旧版 opencc 没有实际测试过,不过应该 不会有什么大问题。现在剩下的问题便是原始源代码的编写方式问题,简繁混合的情况下不知道效果如何。 make 可以通过,大多数页面都算正常,有了 opencc 1.x 以后 zh_TW 和 zh_HK 也可以正确区分开了,不过日志中 error 不少。稍后 再研究究竟问题在哪里吧。 -- Boyuan Yang
generate-zh-variants.sh
(application/x-shellscript, 2.2 KB)
#!/bin/bash
## generate-zh-variants.sh -- Generate pages for different Chinese variants
#
# This script try to process and convert the original texts into different
# Chinese varients using opencc and some predefined converting rules.
base="$1"
ext="$2"
MYPATH=$(/usr/bin/dirname "$0")
OPENCC=/usr/bin/opencc
OPENCC_VERSION_COMPAT=""
if [ -x "$OPENCC" ]; then
# test opencc version here
_OPENCC_VERSION="$(${OPENCC} --version | grep '^Version' | cut -d' ' -f2)"
OPENCC_VERSION_COMPAT=$(echo "${_OPENCC_VERSION}" | grep -o '^.')
fi
# opencc has API breakage between v0.x and v1.x, so we test the opencc version
# and set the correct behaviour before we start.
if [ -z "$OPENCC_VERSION_COMPAT" ]; then
printf "%s WARN: opencc NOT FOUND! not converting variants...\n" "$0"
HANT_TO_HANS="cat"
HANS_TO_HANT="cat"
HANT_TO_TW="cat"
HANT_TO_HK="cat"
elif [ "${OPENCC_VERSION_COMPAT}x" = "0x" ]; then
printf "%s INFO: using old opencc 0.x...\n" "$0"
HANT_TO_HANS="$OPENCC -c mix2zhs.ini"
HANS_TO_HANT="$OPENCC -c mix2zht.ini"
HANT_TO_TW="cat"
HANT_TO_HK="cat"
elif [ "${OPENCC_VERSION_COMPAT}x" = "1x" ]; then
HANT_TO_HANS="$OPENCC -c t2s.json"
HANS_TO_HANT="$OPENCC -c s2t.json"
HANT_TO_TW="$OPENCC -c t2tw.json"
HANT_TO_HK="$OPENCC -c t2hk.json"
else
printf "%s WARN: opencc v%s not supported! not converting variants...\n"\
"$0" "${OPENCC_VERSION_COMPAT}"
HANT_TO_HANS="cat"
HANS_TO_HANT="cat"
HANT_TO_TW="cat"
HANT_TO_HK="cat"
fi
TOCN=$MYPATH/tocn.pl
TOTW=$MYPATH/totw.pl
TOHK=$MYPATH/tohk.pl
check_exist () {
while [ -n "$1" ]; do
if [ ! -e "$1" ]; then
echo "$0: ERROR: $1 does not exist! Aborting..."
exit 1
fi
shift
done
}
generate_zh_variants () {
echo -n "[zh_CN]"
( eval $HANT_TO_HANS | $TOCN ) < "$base".zh-cn."$ext".tmp > "$base".zh-cn."$ext"
echo -n ", [zh_TW]"
( eval $HANS_TO_HANT | $HANT_TO_TW | $TOTW ) < "$base".zh-tw."$ext".tmp > "$base".zh-tw."$ext"
echo -n ", [zh_HK]"
( eval $HANS_TO_HANT | $HANT_TO_HK | $TOHK ) < "$base".zh-hk."$ext".tmp > "$base".zh-hk."$ext"
rm -f "$base".zh-??."$ext".tmp
echo "."
}
check_exist "${ICONV}" "${TOCN}" "${TOTW}" "${TOHK}" \
"$base".zh-cn."$ext".tmp "$base".zh-tw."$ext".tmp "$base".zh-hk."$ext".tmp
generate_zh_variants
signature.asc
(application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE----- iQIyBAABCgAdFiEEBxWNsAe8FiJWLc/BsaNiERUBsx4FAlgwOw4ACgkQsaNiERUB sx7e6w/4oEy7jgOpHdy6OE0Lnwcu86ropqKkfdmf/xr1GWUHEyAUTfuybUcTQRAn TAr7QylxGHkgFlm2qkBv1hbNwTZ+7J7yWXk5ZvQvHKTRQV99KpcA/45/yeKNA+Mk 0AgflrAN3yufNUc574uaUELeQ43DH/VCGgEkE5TRiU/sppSB0BCMuHuVYkydNkJn muTc2fveo6hHTuzQ2mw9rxSa0JpQyebUoi7GThXsw1AtPFWVodNtp5vuYJvdH3iR /fKYpMQV19DI/pFpvvLBFeLd5n7PGkgn1mse+Et8JemXnVYQGN26isp0JNVQbxSy m2W+60SAjR2pPVuErZrIFLYE/EhlR6rZQji6LjqT13Ty/8r4RM0SYiHaqRNLNlDV BtkjNYDFpKo1g1DqOiKm0rjQGnKxXG8gnyy0jeTsnJ99ZR6bc8sMXa5feearZoVb 9Ip7GK2WomvFFTVwAPL8qtF62E3jYkBKrI3UHkPOYMEDAnZCmwZ/X86OGXfZneUR g9Pv5nkhnR+m+I91KuX4ZiPrO+4O6tvDkIfHaSJhFIVnXQzIyhWjaSoYMcUiuAB9 A2Mnj4oxHRJOG16rCNedj0TxnPVNeymmXhJZdoNi18kIuqdwbQ24eAqiZF/9xRaC Z33VWU/gWnEmMalT8DeXs3erHW6hPO1s8tBqgwcZagnibNj4Vg== =+RCs -----END PGP SIGNATURE-----