blob: 6e6e5ccc56046b1b2f3bd6bd3e22f47ecc74a305 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
#!/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 variants 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 # opencc version compat
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]"
# TODO
( 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
|