diff --git a/i18n.sh b/i18n.sh new file mode 100755 index 0000000000..0290c8ec33 --- /dev/null +++ b/i18n.sh @@ -0,0 +1,118 @@ +#!/bin/bash + +function usage () { + echo "usage: $0 " + echo + echo " update update po of this app" + echo " update seahub update po of seahub" + echo " update-all update po of all apps" + echo " compile compile po file of this app" + echo " compile seahub compile po file of seahub" + echo " compile-all compile po files of all apps" + echo +} + +apps="avatar base contacts group notifications organizations profile share thirdpart/auth" +function is_valid_app() { + if [[ $1 == "seahub" ]]; then + return 0; + fi + + for app in ${apps}; do + if [[ $1 == $app ]]; then + return 0; + fi + done + + return 1 +} + +# On some systems django-admin.py is only django-admin +if which django-admin.py 2>/dev/null 1>&2; then + django_admin=django-admin.py +elif which django-admin 2>/dev/null 1>&2; then + django_admin=django-admin +else + echo "ERROR: django-admin script not found" + exit 1 +fi + +# check args +if [[ $# == 0 ]]; then + usage; + exit 1; +fi + +if [[ $1 == "-h" || $1 == "--help" || $1 == "help" ]]; then + usage; + exit 0; +fi + +if [[ $1 != "update" && $1 != "update-all" && $1 != "compile" && $1 != "compile-all" ]]; then + usage; + exit 1; +fi + +if [[ $1 == "update" || $1 == "compile" ]]; then + if [[ $# != 2 ]]; then + usage; + exit 1; + fi + + if ! is_valid_app $2; then + echo "\"$2\" is not a valid app name"; + exit 1 + fi +fi + +case $1 in + update) + printf "\033[1;32m[i18n]\033[m >>>>> update po of $2 <<<<<\n" + if [[ $2 == "seahub" ]]; then + ${django_admin} makemessages -l zh_CN -e py,html \ + -i "thirdpart*" -i "api*" -i "avatar*" -i "base*" \ + -i "contacts*" -i "group*" -i "notifications*" -i "organizations*" \ + -i "profile*" -i "share*" -i "media*" + else + pushd $2 2>/dev/null 1>&2 + ${django_admin} makemessages -l zh_CN -e py,html + popd 2>/dev/null 1>&2 + fi + ;; + update-all) + printf "\033[1;32m[i18n]\033[m >>>>> update po of seahub <<<<<\n" + ${django_admin} makemessages -l zh_CN -e py,html \ + -i "thirdpart*" -i "api*" -i "avatar*" -i "base*" \ + -i "contacts*" -i "group*" -i "notifications*" -i "organizations*" \ + -i "profile*" -i "share*" -i "media*" + for app in ${apps}; do + printf "\033[1;32m[i18n]\033[m >>>>> update po of ${app} <<<<<\n" + pushd ${app} 2>/dev/null 1>&2 + ${django_admin} makemessages -l zh_CN -e py,html + popd 2>/dev/null 1>&2 + done + ;; + compile) + printf "\033[1;32m[i18n]\033[m >>>>> compile po of $2 <<<<<\n" + if [[ $2 == "seahub" ]]; then + ${django_admin} compilemessages + else + pushd $2 + ${django_admin} compilemessages + popd + fi + ;; + compile-all) + printf "\033[1;32m[i18n]\033[m >>>>> compile po of seahub <<<<<\n" + ${django_admin} compilemessages + for app in ${apps}; do + printf "\033[1;32m[i18n]\033[m >>>>> compile po of ${app} <<<<<\n" + pushd ${app} 2>/dev/null 1>&2 + ${django_admin} compilemessages + popd + done + ;; +esac + +echo Done +echo