i18n backend support

This commit is contained in:
Serghey Rodin 2013-01-24 12:49:22 +02:00
commit def0f35141
19 changed files with 347 additions and 23 deletions

View file

@ -202,6 +202,7 @@ U_MAIL_ACCOUNTS='0'
U_DATABASES='0'
U_CRON_JOBS='0'
U_BACKUPS='0'
LANGUAGE=''
TIME='$TIME'
DATE='$DATE'" > $USER_DATA/user.conf
chmod 660 $USER_DATA/user.conf

57
bin/v-change-sys-language Executable file
View file

@ -0,0 +1,57 @@
#!/bin/bash
# info: change sys language
# options: LANGUAGE
#
# The function for changing system language.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
language=$1
# Includes
source $VESTA/conf/vesta.conf
source $VESTA/func/main.sh
is_language_valid() {
if [ ! -e "$VESTA/web/inc/i18n/$language.php" ]; then
echo "Error: language $language not exist"
log_event "$E_NOTEXIST $EVENT"
exit $E_NOTEXIST
fi
}
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'LANGUAGE'
validate_format 'language'
is_language_valid $language
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Change language
if [ -z "$(grep LANGUAGE $VESTA/conf/vesta.conf)" ]; then
echo "LANGUAGE='$language'" >> $VESTA/conf/vesta.conf
else
sed -i "s/LANGUAGE=.*/LANGUAGE='$language'/g" $VESTA/conf/vesta.conf
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$EVENT"
exit

71
bin/v-change-user-language Executable file
View file

@ -0,0 +1,71 @@
#!/bin/bash
# info: change user language
# options: USER LANGUAGE
#
# The function for changing language.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
language=$2
# Includes
source $VESTA/conf/vesta.conf
source $VESTA/func/main.sh
is_language_valid() {
if [ ! -e "$VESTA/web/inc/i18n/$language.php" ]; then
echo "Error: language $language not exist"
log_event "$E_NOTEXIST $EVENT"
exit $E_NOTEXIST
fi
}
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '2' "$#" 'USER LANGUAGE'
validate_format 'user' 'language'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
is_language_valid $language
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Change language
if [ -z "$(grep LANGUAGE $USER_DATA/user.conf)" ]; then
echo "adding LANG"
sed -i "s/^TIME/LANGUAGE='$language'\nTIME/g" $USER_DATA/user.conf
else
update_user_value "$user" '$LANGUAGE' "$language"
echo "changinx LANG"
fi
exit
# Changing user contact email
old_email=$(get_user_value '$CONTACT')
update_user_value "$user" '$CONTACT' "$email"
pw_str=$(grep -n "^$user:" /etc/passwd)
str=$(echo "$pw_str" | cut -f 1 -d :)
sed -i "$str s/$old_email/$email/g" /etc/passwd
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_history "changed contact email to $email"
log_event "$OK" "$EVENT"
exit

View file

@ -107,6 +107,7 @@ U_MAIL_ACCOUNTS='$U_MAIL_ACCOUNTS'
U_DATABASES='$U_DATABASES'
U_CRON_JOBS='$U_CRON_JOBS'
U_BACKUPS='$U_BACKUPS'
LANGUAGE='$LANGUAGE'
TIME='$TIME'
DATE='$DATE'" > $USER_DATA/user.conf
}

67
bin/v-list-sys-languages Executable file
View file

@ -0,0 +1,67 @@
#!/bin/bash
# info: list system users
# options: [FORMAT]
#
# The function for obtaining the list of system users without
# detailed information.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
format=${1-shell}
# Includes
source $VESTA/func/main.sh
# Json function
json_list_lang() {
int_counter=$(echo "$languages" | wc -l)
i=1
echo '['
for lang in $languages; do
if [ "$i" -lt "$int_counter" ]; then
echo -e "\t\"$lang\","
else
echo -e "\t\"$lang\""
fi
(( ++i))
done
echo "]"
}
# Shell function
shell_list_lang() {
if [ -z "$nohead" ]; then
echo "LANGUAGES"
echo "----------"
fi
for lang in $languages; do
echo "$lang"
done
}
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Check languages
languages=$(ls $VESTA/web/inc/i18n/|cut -f 1 -d .)
# Listing domains
case $format in
json) json_list_lang ;;
plain) nohead=1; shell_list_lang ;;
shell) shell_list_lang ;;
*) check_args '1' '0' '[FORMAT]' ;;
esac
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
exit

View file

@ -80,7 +80,7 @@ fields='$USER $FNAME $LNAME $PACKAGE $TEMPLATE $WEB_DOMAINS $WEB_ALIASES
$IP_OWNED $U_USERS $U_DISK $U_DISK_DIRS $U_DISK_WEB $U_DISK_MAIL $U_DISK_DB
$U_BANDWIDTH $U_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS
$U_DNS_RECORDS $U_MAIL_DOMAINS $U_MAIL_DKIM $U_MAIL_ACCOUNTS $U_DATABASES
$U_CRON_JOBS $U_BACKUPS $TIME $DATE'
$U_CRON_JOBS $U_BACKUPS $LANGUAGE $TIME $DATE'
# Listing user
case $format in

View file

@ -84,7 +84,8 @@ fields="$fields \$U_USERS \$U_DISK \$U_DISK_DIRS \$U_DISK_WEB \$U_DISK_MAIL"
fields="$fields \$U_DISK_DB \$U_BANDWIDTH \$U_WEB_DOMAINS \$U_WEB_SSL"
fields="$fields \$U_WEB_ALIASES \$U_DNS_DOMAINS \$U_DNS_RECORDS"
fields="$fields \$U_MAIL_DOMAINS \$U_MAIL_DKIM \$U_MAIL_ACCOUNTS"
fields="$fields \$U_DATABASES \$U_CRON_JOBS \$U_BACKUPS \$TIME \$DATE"
fields="$fields \$U_DATABASES \$U_CRON_JOBS \$U_BACKUPS \$LANGUAGE"
fields="$fields \$TIME \$DATE"
# Listing domains
case $format in