From 95094884a8704a6c58b4c610fed983b7803fd3d7 Mon Sep 17 00:00:00 2001 From: Bob Mottram <bob@freedombone.net> Date: Thu, 20 Sep 2018 23:21:27 +0100 Subject: [PATCH] Command to change language --- src/freedombone-installer | 32 ++------------------- src/freedombone-language | 58 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 29 deletions(-) create mode 100755 src/freedombone-language diff --git a/src/freedombone-installer b/src/freedombone-installer index 0e923bc82..43f7a6d36 100755 --- a/src/freedombone-installer +++ b/src/freedombone-installer @@ -2429,38 +2429,12 @@ function change_language { webadmin_install_dir="/var/www/${local_hostname}/htdocs/admin" if [ -f "$webadmin_install_dir/language_template.html" ]; then if grep -q "\"$language\"" "$webadmin_install_dir/language_template.html"; then + /usr/bin/timeout $APP_INSTALL_TIMEOUT_SEC /usr/local/bin/${PROJECT_NAME}-language "${language}" > "$webadmin_install_dir/log.txt" + + # change the selected language cp "$webadmin_install_dir/language_template.html" "$webadmin_install_dir/language.html" sed -i "s|\"$language\"|\"$language\" selected|g" "$webadmin_install_dir/language.html" chown www-data:www-data "$webadmin_install_dir/language.html" - - config_language=$(grep "DEFAULT_LANGUAGE=" "$CONFIGURATION_FILE" | awk -F '=' '{print $2}') - if [[ "$config_language" != "$language" ]]; then - if [ -d "/usr/share/${PROJECT_NAME}/webadmin/EN" ]; then - # copy files for the new language - cp -r "/usr/share/${PROJECT_NAME}/webadmin/EN/*" "/usr/share/${PROJECT_NAME}/webadmin/" - - # recreate some screens from templates - regenerate_blocklist - touch "$system_monitor_file" - update_system_monitor - webadmin_update_version - fi - - sed -i "s|DEFAULT_LANGUAGE=.*|DEFAULT_LANGUAGE=$language|g" "$CONFIGURATION_FILE" - - chown -R www-data:www-data "$webadmin_install_dir/*" - - locale-gen "${language}" - update-locale LANG="${language}" - update-locale LANGUAGE="${language}" - update-locale LC_MESSAGES="${language}" - update-locale LC_ALL="${language}" - update-locale LC_CTYPE="${language}" - fi - - if [ -f "$webadmin_install_dir/translations/${language}.txt" ]; then - web_admin_translate - fi fi fi diff --git a/src/freedombone-language b/src/freedombone-language new file mode 100755 index 000000000..d96337707 --- /dev/null +++ b/src/freedombone-language @@ -0,0 +1,58 @@ +#!/bin/bash +# _____ _ _ +# | __|___ ___ ___ _| |___ _____| |_ ___ ___ ___ +# | __| _| -_| -_| . | . | | . | . | | -_| +# |__| |_| |___|___|___|___|_|_|_|___|___|_|_|___| +# +# Freedom in the Cloud +# +# set the language +# +# License +# ======= +# +# Copyright (C) 2018 Bob Mottram <bob@freedombone.net> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +PROJECT_NAME='freedombone' + +language="$1" + +if [ ! "$language" ]; then + exit 1 +fi + +CONFIGURATION_FILE="$HOME/${PROJECT_NAME}.cfg" + +source /usr/local/bin/${PROJECT_NAME}-shortcuts + +UTILS_FILES="/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*" +for f in $UTILS_FILES +do + source "$f" +done + +android_update_apps yes + +sed -i "s|DEFAULT_LANGUAGE=.*|DEFAULT_LANGUAGE=$language|g" "$CONFIGURATION_FILE" + +locale-gen "${language}" +update-locale LANG="${language}" +update-locale LANGUAGE="${language}" +update-locale LC_MESSAGES="${language}" +update-locale LC_ALL="${language}" +update-locale LC_CTYPE="${language}" + +exit 0 -- GitLab