From 6092266f8e29aa9ee04cc25440313f959fdb8bec Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@freedombone.net>
Date: Tue, 14 Aug 2018 11:29:24 +0100
Subject: [PATCH] Switching language within the web UI

---
 src/freedombone-installer          |  43 ++++++
 src/freedombone-utils-webadmin     |  19 +++
 webadmin/EN/language_template.html | 206 +++++++++++++++++++++++++++++
 webadmin/EN/settings.html          |  10 +-
 webadmin/dynamicdns.php            |   2 +-
 webadmin/images/language.png       | Bin 0 -> 29346 bytes
 webadmin/language.php              |  19 +++
 7 files changed, 297 insertions(+), 2 deletions(-)
 create mode 100644 webadmin/EN/language_template.html
 create mode 100644 webadmin/images/language.png
 create mode 100755 webadmin/language.php

diff --git a/src/freedombone-installer b/src/freedombone-installer
index f7e6d5c38..25f7712b8 100755
--- a/src/freedombone-installer
+++ b/src/freedombone-installer
@@ -50,6 +50,7 @@ FIREWALL_DOMAINS=/root/${PROJECT_NAME}-firewall-domains.cfg
 local_hostname=$(grep 'host-name' /etc/avahi/avahi-daemon.conf | awk -F '=' '{print $2}').local
 
 webadmin_install_dir="/var/www/${local_hostname}/htdocs/admin"
+language_file="$webadmin_install_dir/.language.txt"
 system_monitor_file="$webadmin_install_dir/.system_monitor.txt"
 dynamic_dns_file="$webadmin_install_dir/.dynamicdns.txt"
 reset_file="$webadmin_install_dir/.reset.txt"
@@ -1342,6 +1343,47 @@ function update_dynamic_dns {
     fi
 }
 
+function change_language {
+    if [ -f "$language_file" ]; then
+        language=$(cat "$language_file")
+        local_hostname=$(grep 'host-name' /etc/avahi/avahi-daemon.conf | awk -F '=' '{print $2}').local
+        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
+                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
+                    curr_language=$(web_admin_get_language_subdir)
+                    if [ -d "/usr/share/${PROJECT_NAME}/webadmin/${curr_language}" ]; then
+                        # copy files for the new language
+                        cp -r "/usr/share/${PROJECT_NAME}/webadmin/${curr_language}/*" "/usr/share/${PROJECT_NAME}/webadmin/"
+
+                        # recreate some screens from templates
+                        regenerate_blocklist
+                        touch "$system_monitor_file"
+                        update_system_monitor
+                    fi
+
+                    chown -R www-data:www-data "$webadmin_install_dir/*"
+
+                    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}"
+                fi
+            fi
+        fi
+
+        rm "$language_file"
+    fi
+}
+
 function update_system_monitor {
     if [ -f "$system_monitor_file" ]; then
         rm "$system_monitor_file"
@@ -1435,6 +1477,7 @@ do
                     update_blocklist
                     update_dynamic_dns
                     update_system_monitor
+                    change_language
                     backup_and_restore
                     backup_and_restore_keys
                     add_remove_users
diff --git a/src/freedombone-utils-webadmin b/src/freedombone-utils-webadmin
index b64a533f9..c235b048d 100755
--- a/src/freedombone-utils-webadmin
+++ b/src/freedombone-utils-webadmin
@@ -720,6 +720,23 @@ function webadmin_update_system_monitor {
     fi
 }
 
+function webadmin_change_language {
+    read_config_param DEFAULT_LANGUAGE
+    language="$DEFAULT_LANGUAGE"
+
+    local_hostname=$(grep 'host-name' /etc/avahi/avahi-daemon.conf | awk -F '=' '{print $2}').local
+    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
+            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"
+
+            sed -i "s|DEFAULT_LANGUAGE=.*|DEFAULT_LANGUAGE=$language|g" "$CONFIGURATION_FILE"
+        fi
+    fi
+}
+
 function install_web_admin {
     # This is intended as an admin web user interface
     # similar to Plinth or the yunohost
@@ -881,6 +898,8 @@ function install_web_admin {
         mkdir -p "/var/www/${local_hostname}/htdocs/plinth"
     fi
 
+    webadmin_change_language
+
     web_admin_create_users
 
     # make list of apps which can be added
diff --git a/webadmin/EN/language_template.html b/webadmin/EN/language_template.html
new file mode 100644
index 000000000..038aa7aaf
--- /dev/null
+++ b/webadmin/EN/language_template.html
@@ -0,0 +1,206 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <style>
+      #headerpic {
+          width: 60%;
+          height: auto;
+          margin-right : auto;
+          margin-left : auto;
+          min-width : 220px;
+      }
+
+      .header {
+          text-align: center;
+          padding: 32px;
+      }
+      .headertext {
+          color: #72a7cf;
+          text-align: center;
+          font-size: 120%;
+          font-weight: bold;
+      }
+
+      .card {
+          box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
+          max-width: 600px;
+          margin: auto;
+          text-align: center;
+          font-family: arial;
+          clear: both;
+      }
+
+      .card input[type=text] {
+          width: 90%;
+          clear: both;
+          text-align: center;
+          color: black;
+          background-color: lightblue;
+      }
+      .card input[type=password] {
+          width: 90%;
+          clear: both;
+          text-align: center;
+          color: black;
+          background-color: lightblue;
+      }
+
+      .appurl {
+          color: grey;
+          font-size: 100%;
+      }
+
+      .welcomeheader {
+          color: black;
+          font-size: 200%;
+          font-weight: bold;
+      }
+
+      .descriptiontext {
+          color: black;
+          font-size: 90%;
+      }
+
+      .logintext {
+          color: black;
+          font-size: 120%;
+          font-weight: bold;
+          color: #981737;
+      }
+
+      button {
+          border: none;
+          outline: 0;
+          display: inline-block;
+          padding: 8px;
+          color: white;
+          background-color: #000;
+          text-align: center;
+          cursor: pointer;
+          width: 100%;
+          font-size: 18px;
+      }
+
+      a {
+          text-decoration: none;
+          color: black;
+      }
+
+      button:hover, a:hover {
+          opacity: 0.7;
+      }
+
+      .chip {
+          display: inline-block;
+          padding: 0 25px;
+          height: 50px;
+          font-size: 70%;
+          line-height: 50px;
+          border-radius: 25px;
+          background-color: #f1f1f1;
+      }
+
+      .chip img {
+          float: left;
+          margin: 0 10px 0 -25px;
+          height: 50px;
+          width: 50px;
+          border-radius: 50%;
+      }
+
+      .languagelist {
+          font-size: 100%;
+          font-weight: bold;
+          color: black;
+          background-color: lightblue;
+      }
+    </style>
+  </head>
+  <body>
+    <div class="card">
+      <div class="header">
+        <a href="settings.html"><img id="headerpic" class="img-responsive" src="images/logo.png"></a><br>
+
+        <p class="headertext">Choose your language</p>
+
+        <form action="language.php" method="post">
+          <select class="languagelist" name="language" size="10">
+            <option value="en_GB.UTF-8">English</option>
+            <option value="af_ZA.UTF-8">Afrikaans</option>
+            <option value="sq_AL.UTF-8">Albanian</option>
+            <option value="ar_SA.UTF-8">Arabic</option>
+            <option value="eu_ES.UTF-8">Basque</option>
+            <option value="be_BY.UTF-8">Belarusian</option>
+            <option value="bs_BA.UTF-8">Bosnian</option>
+            <option value="bg_BG.UTF-8">Bulgarian</option>
+            <option value="ca_ES.UTF-8">Catalan</option>
+            <option value="hr_HR.UTF-8">Croatian</option>
+            <option value="zh_CN.UTF-8">Chinese (Simplified)</option>
+            <option value="zh_TW.UTF-8">Chinese (Traditional)</option>
+            <option value="cs_CZ.UTF-8">Czech</option>
+            <option value="da_DK.UTF-8">Danish</option>
+            <option value="nl_NL.UTF-8">Dutch</option>
+            <option value="en_US.UTF-8">English (US)</option>
+            <option value="et_EE.UTF-8">Estonian</option>
+            <option value="fa_IR.UTF-8">Farsi</option>
+            <option value="ph_PH.UTF-8">Filipino</option>
+            <option value="fi_FI.UTF-8">Finnish</option>
+            <option value="fr_FR.UTF-8">French</option>
+            <option value="fr_CA.UTF-8">French (Canada)</option>
+            <option value="ga.UTF-8">Gaelic</option>
+            <option value="l_ES.UTF-8">Gallego</option>
+            <option value="ka_GE.UTF-8">Georgian</option>
+            <option value="de_DE.UTF-8">German</option>
+            <option value="de_DE.UTF-8">German (Personal)</option>
+            <option value="el_GR.UTF-8">Greek</option>
+            <option value="gu.UTF-8">Gujarati</option>
+            <option value="he_IL.utf8">Hebrew</option>
+            <option value="hi_IN.UTF-8">Hindi</option>
+            <option value="hu.UTF-8">Hungarian</option>
+            <option value="is_IS.UTF-8">Icelandic</option>
+            <option value="id_ID.UTF-8">Indonesian</option>
+            <option value="it_IT.UTF-8">Italian</option>
+            <option value="ja_JP.UTF-8">Japanese</option>
+            <option value="kn_IN.UTF-8">Kannada</option>
+            <option value="km_KH.UTF-8">Khmer</option>
+            <option value="ko_KR.UTF-8">Korean</option>
+            <option value="lo_LA.UTF-8">Lao</option>
+            <option value="lt_LT.UTF-8">Lithuanian</option>
+            <option value="lat.UTF-8">Latvian</option>
+            <option value="ml_IN.UTF-8">Malayalam</option>
+            <option value="ms_MY.UTF-8">Malaysian</option>
+            <option value="mi_NZ.UTF-8">Maori (Ngai Tahu)</option>
+            <option value="mi_NZ.UTF-8">Maori (Waikoto Uni)</option>
+            <option value="mn.UTF-8">Mongolian</option>
+            <option value="no_NO.UTF-8">Norwegian</option>
+            <option value="nn_NO.UTF-8">Norwegian (Primary)</option>
+            <option value="nn_NO.UTF-8">Nynorsk</option>
+            <option value="pl.UTF-8">Polish</option>
+            <option value="pt_PT.UTF-8">Portuguese</option>
+            <option value="pt_BR.UTF-8">Portuguese (Brazil)</option>
+            <option value="ro_RO.UTF-8">Romanian</option>
+            <option value="ru_RU.UTF-8">Russian</option>
+            <option value="mi_NZ.UTF-8">Samoan</option>
+            <option value="sr_CS.UTF-8">Serbian</option>
+            <option value="sk_SK.UTF-8">Slovak</option>
+            <option value="sl_SI.UTF-8">Slovenian</option>
+            <option value="so_SO.UTF-8">Somali</option>
+            <option value="es_ES.UTF-8">Spanish (International)</option>
+            <option value="sv_SE.UTF-8">Swedish</option>
+            <option value="tl.UTF-8">Tagalog</option>
+            <option value="ta_IN.UTF-8">Tamil</option>
+            <option value="th_TH.UTF-8">Thai</option>
+            <option value="tr_TR.UTF-8">Turkish</option>
+            <option value="uk_UA.UTF-8">Ukrainian</option>
+            <option value="vi_VN.UTF-8">Vietnamese</option>
+          </select>
+          <br><br>
+          <input type="submit" name="submitlanguagecancel" value="Cancel">
+          <input type="submit" name="submitlanguage" value="Select">
+        </form>
+
+        <br>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/webadmin/EN/settings.html b/webadmin/EN/settings.html
index 2f7c5325b..25b3a6028 100644
--- a/webadmin/EN/settings.html
+++ b/webadmin/EN/settings.html
@@ -51,7 +51,7 @@
 
     .column {
         -ms-flex: 25%;
-        flex: 25%;
+        flex: 15%;
         max-width: 25%;
         padding: 0 4px;
     }
@@ -109,6 +109,14 @@
           </a>
         </div>
       </div>
+      <div class="column">
+        <div>
+          <a href="./language.html">
+            <img src="images/language.png" style="width:100%">
+            <center>Language</center>
+          </a>
+        </div>
+      </div>
       <div class="column">
         <div>
           <a href="reset.html">
diff --git a/webadmin/dynamicdns.php b/webadmin/dynamicdns.php
index 3a95ef5d6..5a06ce026 100755
--- a/webadmin/dynamicdns.php
+++ b/webadmin/dynamicdns.php
@@ -9,7 +9,7 @@ if (isset($_POST['submitddns'])) {
     $ddns_username = htmlspecialchars($_POST['ddns_username']);
     $ddns_password = htmlspecialchars($_POST['ddns_password']);
 
-    $ddns_file = fopen(".dynamicdns.txt", "w") or die("Unable to create setup file");
+    $ddns_file = fopen(".dynamicdns.txt", "w") or die("Unable to create dynamicdns file");
     fwrite($ddns_file, $ddns.','.$ddns_username.','.$ddns_password);
     fclose($ddns_file);
 }
diff --git a/webadmin/images/language.png b/webadmin/images/language.png
new file mode 100644
index 0000000000000000000000000000000000000000..1aa992949b6a2913ddaddfa4cd512d819dbb97cc
GIT binary patch
literal 29346
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

literal 0
HcmV?d00001

diff --git a/webadmin/language.php b/webadmin/language.php
new file mode 100755
index 000000000..6da9c9f74
--- /dev/null
+++ b/webadmin/language.php
@@ -0,0 +1,19 @@
+<?php
+
+// Change language
+
+$output_filename = "settings.html";
+
+if (isset($_POST['submitlanguage'])) {
+    $language = htmlspecialchars($_POST['language']);
+
+    $language_file = fopen(".language.txt", "w") or die("Unable to create language file");
+    fwrite($language_file, $language);
+    fclose($language_file);
+}
+
+$htmlfile = fopen("$output_filename", "r") or die("Unable to open $output_filename");
+echo fread($htmlfile,filesize("$output_filename"));
+fclose($htmlfile);
+
+?>
-- 
GitLab