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
#!/usr/bin/env bash
BASE_DIR=$(cd $(dirname $0);pwd)
PROJECT_DIR=$(dirname ${BASE_DIR})
LANG="zh_CN en_US"
DOMAIN=koko
BIN=${PROJECT_DIR}/cmd/geni18n.go
INPUT=pkg
OUTPUT=${PROJECT_DIR}/cmd/locale/
init_message() {
for lang in $LANG;do
output_dir=${OUTPUT}/${lang}/LC_MESSAGES/
go run ${BIN} -domain ${DOMAIN} -in ${INPUT} -out ${output_dir}
done
}
make_message() {
cd ${PROJECT_DIR}
go run ${BIN} -domain ${DOMAIN} -in ${INPUT} -out /tmp/
for lang in $LANG;do
po_file=${OUTPUT}/${lang}/LC_MESSAGES/${DOMAIN}.po
msgmerge -U ${po_file} /tmp/${DOMAIN}.po
done
cd -
}
compile_message() {
for lang in $LANG;do
po_file=${OUTPUT}/${lang}/LC_MESSAGES/${DOMAIN}.po
msgfmt -o ${po_file/po/mo} ${po_file}
done
}
if [[ $1 == "c" || $1 == "compile" ]];then
compile_message
elif [[ $1 == "i" ]];then
init_message
else
make_message
fi