diff --git a/locale/af/freedombone-config.json b/locale/af/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/af/freedombone-config.json
+++ b/locale/af/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/af/freedombone-controlpanel.json b/locale/af/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/af/freedombone-controlpanel.json
+++ b/locale/af/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/af/freedombone-dhparam.json b/locale/af/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/af/freedombone-dhparam.json
+++ b/locale/af/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/af/freedombone-image.json b/locale/af/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/af/freedombone-image.json
+++ b/locale/af/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/af/freedombone-wifi.json b/locale/af/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/af/freedombone-wifi.json
+++ b/locale/af/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/af/freedombone.json b/locale/af/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/af/freedombone.json
+++ b/locale/af/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/ar/freedombone-config.json b/locale/ar/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/ar/freedombone-config.json
+++ b/locale/ar/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/ar/freedombone-controlpanel.json b/locale/ar/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/ar/freedombone-controlpanel.json
+++ b/locale/ar/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/ar/freedombone-dhparam.json b/locale/ar/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/ar/freedombone-dhparam.json
+++ b/locale/ar/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/ar/freedombone-image.json b/locale/ar/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/ar/freedombone-image.json
+++ b/locale/ar/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/ar/freedombone-wifi.json b/locale/ar/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/ar/freedombone-wifi.json
+++ b/locale/ar/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/ar/freedombone.json b/locale/ar/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/ar/freedombone.json
+++ b/locale/ar/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/be/freedombone-config.json b/locale/be/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/be/freedombone-config.json
+++ b/locale/be/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/be/freedombone-controlpanel.json b/locale/be/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/be/freedombone-controlpanel.json
+++ b/locale/be/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/be/freedombone-dhparam.json b/locale/be/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/be/freedombone-dhparam.json
+++ b/locale/be/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/be/freedombone-image.json b/locale/be/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/be/freedombone-image.json
+++ b/locale/be/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/be/freedombone-wifi.json b/locale/be/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/be/freedombone-wifi.json
+++ b/locale/be/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/be/freedombone.json b/locale/be/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/be/freedombone.json
+++ b/locale/be/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/bg/freedombone-config.json b/locale/bg/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/bg/freedombone-config.json
+++ b/locale/bg/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/bg/freedombone-controlpanel.json b/locale/bg/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/bg/freedombone-controlpanel.json
+++ b/locale/bg/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/bg/freedombone-dhparam.json b/locale/bg/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/bg/freedombone-dhparam.json
+++ b/locale/bg/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/bg/freedombone-image.json b/locale/bg/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/bg/freedombone-image.json
+++ b/locale/bg/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/bg/freedombone-wifi.json b/locale/bg/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/bg/freedombone-wifi.json
+++ b/locale/bg/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/bg/freedombone.json b/locale/bg/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/bg/freedombone.json
+++ b/locale/bg/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/bs/freedombone-config.json b/locale/bs/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/bs/freedombone-config.json
+++ b/locale/bs/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/bs/freedombone-controlpanel.json b/locale/bs/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/bs/freedombone-controlpanel.json
+++ b/locale/bs/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/bs/freedombone-dhparam.json b/locale/bs/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/bs/freedombone-dhparam.json
+++ b/locale/bs/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/bs/freedombone-image.json b/locale/bs/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/bs/freedombone-image.json
+++ b/locale/bs/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/bs/freedombone-wifi.json b/locale/bs/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/bs/freedombone-wifi.json
+++ b/locale/bs/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/bs/freedombone.json b/locale/bs/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/bs/freedombone.json
+++ b/locale/bs/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/ca/freedombone-config.json b/locale/ca/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/ca/freedombone-config.json
+++ b/locale/ca/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/ca/freedombone-controlpanel.json b/locale/ca/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/ca/freedombone-controlpanel.json
+++ b/locale/ca/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/ca/freedombone-dhparam.json b/locale/ca/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/ca/freedombone-dhparam.json
+++ b/locale/ca/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/ca/freedombone-image.json b/locale/ca/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/ca/freedombone-image.json
+++ b/locale/ca/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/ca/freedombone-wifi.json b/locale/ca/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/ca/freedombone-wifi.json
+++ b/locale/ca/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/ca/freedombone.json b/locale/ca/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/ca/freedombone.json
+++ b/locale/ca/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/cs/freedombone-config.json b/locale/cs/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/cs/freedombone-config.json
+++ b/locale/cs/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/cs/freedombone-controlpanel.json b/locale/cs/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/cs/freedombone-controlpanel.json
+++ b/locale/cs/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/cs/freedombone-dhparam.json b/locale/cs/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/cs/freedombone-dhparam.json
+++ b/locale/cs/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/cs/freedombone-image.json b/locale/cs/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/cs/freedombone-image.json
+++ b/locale/cs/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/cs/freedombone-wifi.json b/locale/cs/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/cs/freedombone-wifi.json
+++ b/locale/cs/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/cs/freedombone.json b/locale/cs/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/cs/freedombone.json
+++ b/locale/cs/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/da/freedombone-config.json b/locale/da/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/da/freedombone-config.json
+++ b/locale/da/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/da/freedombone-controlpanel.json b/locale/da/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/da/freedombone-controlpanel.json
+++ b/locale/da/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/da/freedombone-dhparam.json b/locale/da/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/da/freedombone-dhparam.json
+++ b/locale/da/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/da/freedombone-image.json b/locale/da/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/da/freedombone-image.json
+++ b/locale/da/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/da/freedombone-wifi.json b/locale/da/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/da/freedombone-wifi.json
+++ b/locale/da/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/da/freedombone.json b/locale/da/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/da/freedombone.json
+++ b/locale/da/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/de/freedombone-config.json b/locale/de/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/de/freedombone-config.json
+++ b/locale/de/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/de/freedombone-controlpanel.json b/locale/de/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/de/freedombone-controlpanel.json
+++ b/locale/de/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/de/freedombone-dhparam.json b/locale/de/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/de/freedombone-dhparam.json
+++ b/locale/de/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/de/freedombone-image.json b/locale/de/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/de/freedombone-image.json
+++ b/locale/de/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/de/freedombone-wifi.json b/locale/de/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/de/freedombone-wifi.json
+++ b/locale/de/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/de/freedombone.json b/locale/de/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/de/freedombone.json
+++ b/locale/de/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/de_du/freedombone-config.json b/locale/de_du/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/de_du/freedombone-config.json
+++ b/locale/de_du/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/de_du/freedombone-controlpanel.json b/locale/de_du/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/de_du/freedombone-controlpanel.json
+++ b/locale/de_du/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/de_du/freedombone-dhparam.json b/locale/de_du/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/de_du/freedombone-dhparam.json
+++ b/locale/de_du/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/de_du/freedombone-image.json b/locale/de_du/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/de_du/freedombone-image.json
+++ b/locale/de_du/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/de_du/freedombone-wifi.json b/locale/de_du/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/de_du/freedombone-wifi.json
+++ b/locale/de_du/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/de_du/freedombone.json b/locale/de_du/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/de_du/freedombone.json
+++ b/locale/de_du/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/el/freedombone-config.json b/locale/el/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/el/freedombone-config.json
+++ b/locale/el/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/el/freedombone-controlpanel.json b/locale/el/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/el/freedombone-controlpanel.json
+++ b/locale/el/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/el/freedombone-dhparam.json b/locale/el/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/el/freedombone-dhparam.json
+++ b/locale/el/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/el/freedombone-image.json b/locale/el/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/el/freedombone-image.json
+++ b/locale/el/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/el/freedombone-wifi.json b/locale/el/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/el/freedombone-wifi.json
+++ b/locale/el/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/el/freedombone.json b/locale/el/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/el/freedombone.json
+++ b/locale/el/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/en_us/freedombone-config.json b/locale/en_us/freedombone-config.json
index af2f12e02f801360a955fd7b9432b596df9cdb91..bbda8d6cafe82a91ee7d33f3a8bd8b8c28d40e25 100644
--- a/locale/en_us/freedombone-config.json
+++ b/locale/en_us/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "Set your username for the system\\n\\nYour username should not contain any spaces",
     "Don't use the default user account": "Don't use the default user account",
     "The directory /home/$MY_USERNAME does not exist": "The directory /home/$MY_USERNAME does not exist",
+    "Your full name (or nick)": "Your full name (or nick)",
     "Install Target": "Install Target",
     "\\nAre you installing onto a Beaglebone Black?": "\\nAre you installing onto a Beaglebone Black?",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.",
@@ -189,19 +190,11 @@
     "ValiDOM": "ValiDOM",
     "Freie Unzensierte": "Freie Unzensierte",
     "Google": "Google",
-    "Wifi Settings": "Wifi Settings",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:",
-    "Interface:": "Interface:",
-    "SSID:": "SSID:",
-    "Type:": "Type:",
-    "Passphrase:": "Passphrase:",
-    "Hotspot:": "Hotspot:",
     "Choose Dynamic DNS provider:": "Choose Dynamic DNS provider:",
     "Dynamic DNS provider username": "Dynamic DNS provider username",
     "Dynamic DNS provider password": "Dynamic DNS provider password",
     "Password quality check": "Password quality check",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.",
-    "Your full name (or nick)": "Your full name (or nick)",
     "Static local IP address": "Static local IP address",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10",
     "Local Network Configuration": "Local Network Configuration",
diff --git a/locale/en_us/freedombone-controlpanel.json b/locale/en_us/freedombone-controlpanel.json
index 5b96a61416440c863560410484faddbbed99d9a1..cdc92185c91602ca9e51e24213c4eaa2348ffc93 100644
--- a/locale/en_us/freedombone-controlpanel.json
+++ b/locale/en_us/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "Set the IP address of your internet router/modem",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar",
     "Wifi Settings": "Wifi Settings",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:",
-    "Interface:": "Interface:",
+    "Wifi settings were changed": "Wifi settings were changed",
+    "Hotspot Settings": "Hotspot Settings",
+    "Enabled (yes/no):": "Enabled (yes/no):",
     "SSID:": "SSID:",
-    "Type:": "Type:",
+    "Type (wpa2-psk/none):": "Type (wpa2-psk/none):",
     "Passphrase:": "Passphrase:",
-    "Hotspot:": "Hotspot:",
-    "Wifi settings were changed": "Wifi settings were changed",
+    "No wifi hotspot passphrase was given": "No wifi hotspot passphrase was given",
+    "Wifi hotspot passphrase was too short": "Wifi hotspot passphrase was too short",
+    "Hotspot settings were changed": "Hotspot settings were changed",
     "Backup and Restore": "Backup and Restore",
     "Choose an operation:": "Choose an operation:",
     "Backup data to USB drive": "Backup data to USB drive",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "Attach a drive containing playable media",
     "Remove a drive containing playable media": "Remove a drive containing playable media",
     "Exit": "Exit",
+    "Enable Wifi": "Enable Wifi",
+    "\\nDo you wish to enable wifi?": "\\nDo you wish to enable wifi?",
+    "Wifi Menu": "Wifi Menu",
+    "${status_str}\\n\\nChoose an operation:": "${status_str}\\n\\nChoose an operation:",
+    "Enable or disable Wifi": "Enable or disable Wifi",
+    "Configure wifi networks": "Configure wifi networks",
+    "Manually edit wifi networks file": "Manually edit wifi networks file",
+    "Hotspot settings": "Hotspot settings",
     "IRC Menu": "IRC Menu",
     "No IRC server is installed": "No IRC server is installed",
     "Set a password for all IRC users": "Set a password for all IRC users",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "Set the main repository (repo mirrors)",
     "Media menu": "Media menu",
     "IRC menu": "IRC menu",
-    "Change your blog avatar": "Change your blog avatar"
+    "Change your blog avatar": "Change your blog avatar",
+    "Wifi menu": "Wifi menu"
 }
\ No newline at end of file
diff --git a/locale/en_us/freedombone-dhparam.json b/locale/en_us/freedombone-dhparam.json
index fcfa97c0829edc031bf71cc46327553e0363f930..44d478e5795459b72bb3d50077c104c40b91bcb1 100644
--- a/locale/en_us/freedombone-dhparam.json
+++ b/locale/en_us/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]",
     "Recalculated DH params for $filename": "Recalculated DH params for $filename",
+    "yes": "yes",
+    "y": "y",
     "$0: openssl is not installed, exiting": "$0: openssl is not installed, exiting"
 }
\ No newline at end of file
diff --git a/locale/en_us/freedombone-image.json b/locale/en_us/freedombone-image.json
index 5c38ad2e18fb0f1293470b5564711ca52d1d407b..2ac6eceffb184b9954a7b7dfa01b49cee3f1add4 100644
--- a/locale/en_us/freedombone-image.json
+++ b/locale/en_us/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "Config file $CONFIG_FILENAME not found",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters",
+    "$1": "$1",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "\nImage was created.\n\nYou will be able to log into it with:\n",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "    Username: $USERNAME\n    Password: $PASSWORD\n",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "\n    Username: $USERNAME\n    Password: $PASSWORD\n",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "    Username: $USERNAME\nPassword: $PASSWORD\n",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "\nUsername: $USERNAME\nPassword: $PASSWORD\n",
     "Username: $USERNAME\nPassword: $PASSWORD": "Username: $USERNAME\nPassword: $PASSWORD"
 }
\ No newline at end of file
diff --git a/locale/en_us/freedombone-wifi.json b/locale/en_us/freedombone-wifi.json
index fdcf638e44aae3371ea041bc0a1eb9fd86d9ccf8..75a60ca7f78d9314e76f2057426d5aad6f73954b 100644
--- a/locale/en_us/freedombone-wifi.json
+++ b/locale/en_us/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "Freedombone Configuration",
+    "Wifi Settings ${wifi_ctr}": "Wifi Settings ${wifi_ctr}",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:",
+    "SSID:": "SSID:",
+    "Type:": "Type:",
+    "Passphrase:": "Passphrase:",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]"
 }
\ No newline at end of file
diff --git a/locale/en_us/freedombone.json b/locale/en_us/freedombone.json
index 096ab1751873c3598daf211d0280d363e9bf6677..fb35e0e04d1a5e7bc0da546d50d01481b289f9e9 100644
--- a/locale/en_us/freedombone.json
+++ b/locale/en_us/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "Your search engine password is: $SEARCH_ENGINE_PASSWORD",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "Open http://$WEBMAIL_ONION_HOSTNAME",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "Open https://$HUBZILLA_DOMAIN_NAME and register a new user",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD",
diff --git a/locale/es/freedombone-config.json b/locale/es/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/es/freedombone-config.json
+++ b/locale/es/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/es/freedombone-controlpanel.json b/locale/es/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/es/freedombone-controlpanel.json
+++ b/locale/es/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/es/freedombone-dhparam.json b/locale/es/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/es/freedombone-dhparam.json
+++ b/locale/es/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/es/freedombone-image.json b/locale/es/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/es/freedombone-image.json
+++ b/locale/es/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/es/freedombone-wifi.json b/locale/es/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/es/freedombone-wifi.json
+++ b/locale/es/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/es/freedombone.json b/locale/es/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/es/freedombone.json
+++ b/locale/es/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/et/freedombone-config.json b/locale/et/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/et/freedombone-config.json
+++ b/locale/et/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/et/freedombone-controlpanel.json b/locale/et/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/et/freedombone-controlpanel.json
+++ b/locale/et/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/et/freedombone-dhparam.json b/locale/et/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/et/freedombone-dhparam.json
+++ b/locale/et/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/et/freedombone-image.json b/locale/et/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/et/freedombone-image.json
+++ b/locale/et/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/et/freedombone-wifi.json b/locale/et/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/et/freedombone-wifi.json
+++ b/locale/et/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/et/freedombone.json b/locale/et/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/et/freedombone.json
+++ b/locale/et/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/eu/freedombone-config.json b/locale/eu/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/eu/freedombone-config.json
+++ b/locale/eu/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/eu/freedombone-controlpanel.json b/locale/eu/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/eu/freedombone-controlpanel.json
+++ b/locale/eu/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/eu/freedombone-dhparam.json b/locale/eu/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/eu/freedombone-dhparam.json
+++ b/locale/eu/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/eu/freedombone-image.json b/locale/eu/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/eu/freedombone-image.json
+++ b/locale/eu/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/eu/freedombone-wifi.json b/locale/eu/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/eu/freedombone-wifi.json
+++ b/locale/eu/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/eu/freedombone.json b/locale/eu/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/eu/freedombone.json
+++ b/locale/eu/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/fa/freedombone-config.json b/locale/fa/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/fa/freedombone-config.json
+++ b/locale/fa/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/fa/freedombone-controlpanel.json b/locale/fa/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/fa/freedombone-controlpanel.json
+++ b/locale/fa/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/fa/freedombone-dhparam.json b/locale/fa/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/fa/freedombone-dhparam.json
+++ b/locale/fa/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/fa/freedombone-image.json b/locale/fa/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/fa/freedombone-image.json
+++ b/locale/fa/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/fa/freedombone-wifi.json b/locale/fa/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/fa/freedombone-wifi.json
+++ b/locale/fa/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/fa/freedombone.json b/locale/fa/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/fa/freedombone.json
+++ b/locale/fa/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/fi/freedombone-config.json b/locale/fi/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/fi/freedombone-config.json
+++ b/locale/fi/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/fi/freedombone-controlpanel.json b/locale/fi/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/fi/freedombone-controlpanel.json
+++ b/locale/fi/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/fi/freedombone-dhparam.json b/locale/fi/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/fi/freedombone-dhparam.json
+++ b/locale/fi/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/fi/freedombone-image.json b/locale/fi/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/fi/freedombone-image.json
+++ b/locale/fi/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/fi/freedombone-wifi.json b/locale/fi/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/fi/freedombone-wifi.json
+++ b/locale/fi/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/fi/freedombone.json b/locale/fi/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/fi/freedombone.json
+++ b/locale/fi/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/fil/freedombone-config.json b/locale/fil/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/fil/freedombone-config.json
+++ b/locale/fil/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/fil/freedombone-controlpanel.json b/locale/fil/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/fil/freedombone-controlpanel.json
+++ b/locale/fil/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/fil/freedombone-dhparam.json b/locale/fil/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/fil/freedombone-dhparam.json
+++ b/locale/fil/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/fil/freedombone-image.json b/locale/fil/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/fil/freedombone-image.json
+++ b/locale/fil/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/fil/freedombone-wifi.json b/locale/fil/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/fil/freedombone-wifi.json
+++ b/locale/fil/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/fil/freedombone.json b/locale/fil/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/fil/freedombone.json
+++ b/locale/fil/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/fr/freedombone-config.json b/locale/fr/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/fr/freedombone-config.json
+++ b/locale/fr/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/fr/freedombone-controlpanel.json b/locale/fr/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/fr/freedombone-controlpanel.json
+++ b/locale/fr/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/fr/freedombone-dhparam.json b/locale/fr/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/fr/freedombone-dhparam.json
+++ b/locale/fr/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/fr/freedombone-image.json b/locale/fr/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/fr/freedombone-image.json
+++ b/locale/fr/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/fr/freedombone-wifi.json b/locale/fr/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/fr/freedombone-wifi.json
+++ b/locale/fr/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/fr/freedombone.json b/locale/fr/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/fr/freedombone.json
+++ b/locale/fr/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/fr_BE/freedombone-addcert.json b/locale/fr_BE/freedombone-addcert.json
new file mode 100644
index 0000000000000000000000000000000000000000..1b3ca325a5c50c07a77b5ab57c41a10a3ee8aea3
--- /dev/null
+++ b/locale/fr_BE/freedombone-addcert.json
@@ -0,0 +1,7 @@
+{
+    "${PROJECT_NAME}-addcert -h [hostname] -c [country code] -a [area] -l [location]": "",
+    "$0: openssl is not installed, exiting": "",
+    "Failed to install letsencrypt for domain $LETSENCRYPT_HOSTNAME": "",
+    "Certificate for $LETSENCRYPT_HOSTNAME could not be pinned": "",
+    "Certificate for $CERTFILE could not be pinned": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-addcert.mo b/locale/fr_BE/freedombone-addcert.mo
new file mode 100644
index 0000000000000000000000000000000000000000..1f7080cfb876cfe0eb8afa4437e4348d9248ead9
Binary files /dev/null and b/locale/fr_BE/freedombone-addcert.mo differ
diff --git a/locale/fr_BE/freedombone-addemail.json b/locale/fr_BE/freedombone-addemail.json
new file mode 100644
index 0000000000000000000000000000000000000000..8787e7dd7aeeb1ed257a4861bbdeedb0f522b1d7
--- /dev/null
+++ b/locale/fr_BE/freedombone-addemail.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-addemail -u [username] -e [email address] -s [subject text] -g [group name] --public [yes|no]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-addemail.mo b/locale/fr_BE/freedombone-addemail.mo
new file mode 100644
index 0000000000000000000000000000000000000000..f08e4be942acedc22734c17f66cc98fde078247e
Binary files /dev/null and b/locale/fr_BE/freedombone-addemail.mo differ
diff --git a/locale/fr_BE/freedombone-addlist.json b/locale/fr_BE/freedombone-addlist.json
new file mode 100644
index 0000000000000000000000000000000000000000..6c145e7030225c4e83588b2061aae840d5480d28
--- /dev/null
+++ b/locale/fr_BE/freedombone-addlist.json
@@ -0,0 +1,4 @@
+{
+    "${PROJECT_NAME}-addlist -u [username] -l [mailing list name] -s [subject tag] -e [list email address] --public [yes|no]": "",
+    "Mailing list $MAILINGLIST was already added": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-addlist.mo b/locale/fr_BE/freedombone-addlist.mo
new file mode 100644
index 0000000000000000000000000000000000000000..5390b8e86c921ac469494dac0aa21eda4d22ef36
Binary files /dev/null and b/locale/fr_BE/freedombone-addlist.mo differ
diff --git a/locale/fr_BE/freedombone-addsipuser.json b/locale/fr_BE/freedombone-addsipuser.json
new file mode 100644
index 0000000000000000000000000000000000000000..09080aa6996b84e1876613044e8c2e2a1fe0dec8
--- /dev/null
+++ b/locale/fr_BE/freedombone-addsipuser.json
@@ -0,0 +1,7 @@
+{
+    "${PROJECT_NAME}-addsipuser -u [username] -e [extension] -p [password]": "",
+    "SIP configuration file not found": "",
+    "User $MY_USERNAME not found": "",
+    "SIP user $MY_USERNAME amended": "",
+    "SIP user $MY_USERNAME added": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-addsipuser.mo b/locale/fr_BE/freedombone-addsipuser.mo
new file mode 100644
index 0000000000000000000000000000000000000000..92aaf818ddc31dbcece4529351267ad14a174fc0
Binary files /dev/null and b/locale/fr_BE/freedombone-addsipuser.mo differ
diff --git a/locale/fr_BE/freedombone-adduser.json b/locale/fr_BE/freedombone-adduser.json
new file mode 100644
index 0000000000000000000000000000000000000000..179e11c3ae91886399d462ee0a02fee6806526fb
--- /dev/null
+++ b/locale/fr_BE/freedombone-adduser.json
@@ -0,0 +1,15 @@
+{
+    "The user $MY_USERNAME already exists": "",
+    "$COMPLETION_FILE not found": "",
+    "It's very important to add a password to your GPG key so that": "",
+    "if anyone does get access to your email they still won't be able": "",
+    "Adding an XMPP account for $MY_USERNAME": "",
+    "XMPP account not created": "",
+    "Adding XMPP client setup": "",
+    "Unable to find GNU Social installation at /var/www/$MICROBLOG_DOMAIN_NAME/htdocs": "",
+    "New user $MY_USERNAME was created": "",
+    "Their SIP phone extension is $SIP_EXTENSION": "",
+    "Their login password is $NEW_USER_PASSWORD": "",
+    "They can download their GPG keys with:": "",
+    "They should also run ${PROJECT_NAME}-client on their system to ensure": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-adduser.mo b/locale/fr_BE/freedombone-adduser.mo
new file mode 100644
index 0000000000000000000000000000000000000000..703100c947625cf3a1fb9fe88abfca723a3b69e8
Binary files /dev/null and b/locale/fr_BE/freedombone-adduser.mo differ
diff --git a/locale/fr_BE/freedombone-addxmpp.json b/locale/fr_BE/freedombone-addxmpp.json
new file mode 100644
index 0000000000000000000000000000000000000000..505bc43ebf5e768e22d1495a19248082355e8ab6
--- /dev/null
+++ b/locale/fr_BE/freedombone-addxmpp.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-addxmpp -e [email address] -p [password]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-addxmpp.mo b/locale/fr_BE/freedombone-addxmpp.mo
new file mode 100644
index 0000000000000000000000000000000000000000..2b3409afadb6e1eb989aae4ddb0ba57c50b4845d
Binary files /dev/null and b/locale/fr_BE/freedombone-addxmpp.mo differ
diff --git a/locale/fr_BE/freedombone-backup-local.json b/locale/fr_BE/freedombone-backup-local.json
new file mode 100644
index 0000000000000000000000000000000000000000..82a2f7b72b210e84ee1f6c4edf58f1b9f8e26476
--- /dev/null
+++ b/locale/fr_BE/freedombone-backup-local.json
@@ -0,0 +1,35 @@
+{
+    "Please attach a USB drive": "",
+    "There was a problem mounting the USB drive to $USB_MOUNT": "",
+    "Unable to unmount the drive. This means that the backup did not work": "",
+    "Unmount encrypted USB": "",
+    "Backup to USB drive is complete. You can now unplug it.": "",
+    "No MariaDB password was given": "",
+    "Obtaining ${1} database backup": "",
+    "${1} database could not be saved": "",
+    "WARNING: directory does not exist: ${1}": "",
+    "Backup key could not be found": "",
+    "There was a problem making the directory $USB_MOUNT/backup.": "",
+    "Less than 5% of space remaining on backup drive": "",
+    "Backing up gpg keys for $USERNAME": "",
+    "Backing up personal settings for $USERNAME": "",
+    "Backing up ssh keys for $USERNAME": "",
+    "Backing up fin files for $USERNAME": "",
+    "Backing up syncthing files for $USERNAME": "",
+    "Backing up config files for $USERNAME": "",
+    "Backing up local files for $USERNAME": "",
+    "Backing up Mutt settings for $USERNAME": "",
+    "Creating an email archive for $USERNAME": "",
+    "Backing up emails for $USERNAME": "",
+    "Backing up spamassassin settings for $USERNAME": "",
+    "Backing up procmail settings for $USERNAME": "",
+    "Backing up $source_directory to $dest_directory": "",
+    "Backing up ${PROJECT_NAME} configuration files": "",
+    "Backing up README": "",
+    "Backing up VoIP settings": "",
+    "Unable to backup mysql settings": "",
+    "Backing up some additional directories": "",
+    "WARNING: The backup directory $destination_dir is already used.": "",
+    "Choose a different destination name for backing up $backup_dir": "",
+    "WARNING: Directory $backup_dir does not exist": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-backup-local.mo b/locale/fr_BE/freedombone-backup-local.mo
new file mode 100644
index 0000000000000000000000000000000000000000..9b193974f9d3cf4d6e5cad0a8f0a350138af21c2
Binary files /dev/null and b/locale/fr_BE/freedombone-backup-local.mo differ
diff --git a/locale/fr_BE/freedombone-backup-remote.json b/locale/fr_BE/freedombone-backup-remote.json
new file mode 100644
index 0000000000000000000000000000000000000000..854e5216cc135cf78008222c7024ff4037f0c4dc
--- /dev/null
+++ b/locale/fr_BE/freedombone-backup-remote.json
@@ -0,0 +1,51 @@
+{
+    "Creating backup key": "",
+    "Backup key could not be found": "",
+    "No MariaDB password was given": "",
+    "${1} database could not be saved": "",
+    "Unable to export ${1} database": "",
+    "${PROJECT_NAME} backup to friends": "",
+    "Backing up ${PROJECT_NAME} configuration files": "",
+    "Backing up personal settings for $USERNAME": "",
+    "Backing up gpg keys for $USERNAME": "",
+    "Backing up ssh keys for $USERNAME": "",
+    "Backing up syncthing files for $USERNAME": "",
+    "Backing up config files for $USERNAME": "",
+    "Backing up fin files for $USERNAME": "",
+    "Backing up local files for $USERNAME": "",
+    "Backing up Mutt settings for $USERNAME": "",
+    "Backing up procmail settings for $USERNAME": "",
+    "Backing up spamassassin settings for $USERNAME": "",
+    "Creating an email archive": "",
+    "Backing up emails for $USERNAME": "",
+    "Backing up Lets Encrypt settings": "",
+    "Backing up Tor settings": "",
+    "Backing up RSS reader installation": "",
+    "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+    "Backing up GNU social installation": "",
+    "GNU Social domain specified but not found in /var/www/${MICROBLOG_DOMAIN_NAME}": "",
+    "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": "",
+    "Backing up syncthing configuration": "",
+    "Backing up syncthing shared files": "",
+    "Backing up Mediagoblin": "",
+    "Obtaining Gogs settings backup": "",
+    "Obtaining Gogs repos backup": "",
+    "Obtaining Gogs authorized_keys backup": "",
+    "Backing up wiki": "",
+    "Backing up blog": "",
+    "Blog domain specified but not found in /var/www/${FULLBLOG_DOMAIN_NAME}": "",
+    "Backing up certificates": "",
+    "Backing up the public mailing list": "",
+    "Backing up the XMPP settings": "",
+    "Backing up web settings": "",
+    "Backing up README": "",
+    "Backing up IPFS": "",
+    "Backing up DLNA cache": "",
+    "Backing up VoIP settings": "",
+    "Unable to backup MariaDB settings": "",
+    "Unable to export database settings": "",
+    "Backing up some additional directories": "",
+    "WARNING: The backup directory $destination_dir is already used.": "",
+    "Choose a different destination name for backing up $backup_dir": "",
+    "WARNING: Directory $backup_dir does not exist": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-backup-remote.mo b/locale/fr_BE/freedombone-backup-remote.mo
new file mode 100644
index 0000000000000000000000000000000000000000..0a0e394590c99e385453a875f2066d1f1daeb3de
Binary files /dev/null and b/locale/fr_BE/freedombone-backup-remote.mo differ
diff --git a/locale/fr_BE/freedombone-blog.json b/locale/fr_BE/freedombone-blog.json
new file mode 100644
index 0000000000000000000000000000000000000000..5bbec508dfa6661a91fe7050b84ad44f7b0e56cc
--- /dev/null
+++ b/locale/fr_BE/freedombone-blog.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-blog -h [hostname] -a [avatar image file]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-blog.mo b/locale/fr_BE/freedombone-blog.mo
new file mode 100644
index 0000000000000000000000000000000000000000..29578211084082618b5ef58adbfdc964ba524bdb
Binary files /dev/null and b/locale/fr_BE/freedombone-blog.mo differ
diff --git a/locale/fr_BE/freedombone-client.json b/locale/fr_BE/freedombone-client.json
new file mode 100644
index 0000000000000000000000000000000000000000..adad53c5781b4763115215168f07d3f59d3e09da
--- /dev/null
+++ b/locale/fr_BE/freedombone-client.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-client": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-client.mo b/locale/fr_BE/freedombone-client.mo
new file mode 100644
index 0000000000000000000000000000000000000000..6aca5433d855be08f46dde3baf968d7b4134aa04
Binary files /dev/null and b/locale/fr_BE/freedombone-client.mo differ
diff --git a/locale/fr_BE/freedombone-clientcert.json b/locale/fr_BE/freedombone-clientcert.json
new file mode 100644
index 0000000000000000000000000000000000000000..3ebf699f6e2cd47b6aea7540d9f6e3ed23725735
--- /dev/null
+++ b/locale/fr_BE/freedombone-clientcert.json
@@ -0,0 +1,4 @@
+{
+    "${PROJECT_NAME}-clientcert -u [username]": "",
+    "User $USERNAME not found": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-clientcert.mo b/locale/fr_BE/freedombone-clientcert.mo
new file mode 100644
index 0000000000000000000000000000000000000000..2b10157ee73005e6df68b1493e427ee1f4f6a5b9
Binary files /dev/null and b/locale/fr_BE/freedombone-clientcert.mo differ
diff --git a/locale/fr_BE/freedombone-config.json b/locale/fr_BE/freedombone-config.json
new file mode 100644
index 0000000000000000000000000000000000000000..40d7dee91e38fecaa17993b9326ed1b5c6290934
--- /dev/null
+++ b/locale/fr_BE/freedombone-config.json
@@ -0,0 +1,228 @@
+{
+    "<h1>Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog</h1><p>Another $PROJECT_NAME site</p>": "",
+    "${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+    "Please enter the FreeDNS code for this domain.\\n\\nThe code can be found by going to https://freedns.afraid.org, selecting 'Dynamic DNS' and then opening 'Wget example'. The code will consist of letters and numbers and be between the ? and = characters.": "",
+    "Invalid FreeDNS Code": "",
+    "Encryption keys": "",
+    "There was a problem mounting the USB drive to $GPG_USB_MOUNT": "",
+    "The directory $GPG_USB_MOUNT/.gnupg or $GPG_USB_MOUNT/.gnupg_fragments was not found": "",
+    "GPG Keyring loaded to $HOME_DIR": "",
+    "ssh keys imported": "",
+    "Now remove the USB drive. Insert the next drive containing a key fragment, or select Ok to finish": "",
+    "Freedombone Configuration": "",
+    "GPG/PGP keys for your system:": "",
+    "Generate new keys (new user)": "",
+    "Import keys from USB drive/s": "",
+    "Retrieve keys from friends servers": "",
+    "Freedombone Control Panel": "",
+    "Main Repository (Mirrors)": "",
+    "If you don't know what this means then just select Ok.\\n\\nIf you don't wish to use the default repositories they can be obtained from mirrored repos on another ${PROJECT_NAME} system.\\n\\nThe repositories are for applications which are not yet packaged for Debian.": "",
+    "URL:": "",
+    "SSH Port:": "",
+    "Password:": "",
+    "Main Repository": "",
+    "Main repository set to $FRIENDS_MIRRORS_SERVER": "",
+    "Select your language:": "",
+    "Afrikaans": "",
+    "Albanian": "",
+    "Arabic": "",
+    "Basque": "",
+    "Belarusian": "",
+    "Bosnian": "",
+    "Bulgarian": "",
+    "Catalan": "",
+    "Croatian": "",
+    "Chinese (Simplified)": "",
+    "Chinese (Traditional)": "",
+    "Czech": "",
+    "Danish": "",
+    "Dutch": "",
+    "English": "",
+    "English (US)": "",
+    "Estonian": "",
+    "Farsi": "",
+    "Filipino": "",
+    "Finnish": "",
+    "French": "",
+    "French (Canada)": "",
+    "Gaelic": "",
+    "Gallego": "",
+    "Georgian": "",
+    "German": "",
+    "German (Personal)": "",
+    "Greek": "",
+    "Gujarati": "",
+    "Hebrew": "",
+    "Hindi": "",
+    "Hungarian": "",
+    "Icelandic": "",
+    "Indonesian": "",
+    "Italian": "",
+    "Japanese": "",
+    "Kannada": "",
+    "Khmer": "",
+    "Korean": "",
+    "Lao": "",
+    "Lithuanian": "",
+    "Latvian": "",
+    "Malayalam": "",
+    "Malaysian": "",
+    "Maori (Ngai Tahu)": "",
+    "Maori (Waikoto Uni)": "",
+    "Mongolian": "",
+    "Norwegian": "",
+    "Norwegian (Primary)": "",
+    "Nynorsk": "",
+    "Polish": "",
+    "Portuguese": "",
+    "Portuguese (Brazil)": "",
+    "Romanian": "",
+    "Russian": "",
+    "Samoan": "",
+    "Serbian": "",
+    "Slovak": "",
+    "Slovenian": "",
+    "Somali": "",
+    "Spanish (International)": "",
+    "Swedish": "",
+    "Tagalog": "",
+    "Tamil": "",
+    "Thai": "",
+    "Turkish": "",
+    "Ukrainian": "",
+    "Vietnamese": "",
+    "Select User": "",
+    "Select one of the following:": "",
+    "Welcome to the Freedombone interactive installer. Communications freedom is only a short time away.\\n\\nEnsure that you have your domain and dynamic DNS settings ready.\\n\\nFor more information please visit $FREEDOMBONE_WEBSITE.": "",
+    "Welcome to the Freedombone interactive installer. Communications freedom is only a short time away.\\n\\nWeb sites created will only be viewable within a Tor browser.\\n\\nFor more information please visit $FREEDOMBONE_WEBSITE.": "",
+    "Freedombone": "",
+    "Type of Installation:": "",
+    "Full": "",
+    "Writer": "",
+    "Cloud": "",
+    "Chat": "",
+    "Mailbox": "",
+    "Non-Mailbox": "",
+    "Social": "",
+    "Media": "",
+    "Developer": "",
+    "Mesh (router)": "",
+    "Mesh (user device)": "",
+    "Wireless Mesh ESSID\\n\\nIf you press enter the default will be '$WIFI_SSID'": "",
+    "Give your mesh peer a name": "",
+    "Wifi Channel (spaced to be non-overlapping):": "",
+    "Username": "",
+    "Set your username for the system\\n\\nYour username should not contain any spaces": "",
+    "Don't use the default user account": "",
+    "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
+    "Install Target": "",
+    "\\nAre you installing onto a Beaglebone Black?": "",
+    "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
+    "Social Key Management": "",
+    "Type of Random Number Generator:": "",
+    "OneRNG Device": "",
+    "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+    "Where to download Debian packages from:": "",
+    "Australia": "",
+    "Austria": "",
+    "Belarus": "",
+    "Belgium": "",
+    "Bosnia and Herzegovina": "",
+    "Brazil": "",
+    "Bulgaria": "",
+    "Canada": "",
+    "Chile": "",
+    "China": "",
+    "Croatia": "",
+    "Czech Republic": "",
+    "Denmark": "",
+    "El Salvador": "",
+    "Estonia": "",
+    "Finland": "",
+    "France 1": "",
+    "France 2": "",
+    "Germany 1": "",
+    "Germany 2": "",
+    "Greece": "",
+    "Hungary": "",
+    "Iceland": "",
+    "Iran": "",
+    "Ireland": "",
+    "Italy": "",
+    "Japan": "",
+    "Korea": "",
+    "Lithuania": "",
+    "Mexico": "",
+    "Netherlands": "",
+    "New Caledonia": "",
+    "New Zealand": "",
+    "Norway": "",
+    "Poland": "",
+    "Portugal": "",
+    "Romania": "",
+    "Russia": "",
+    "Slovakia": "",
+    "Slovenia": "",
+    "Spain": "",
+    "Sweden": "",
+    "Switzerland": "",
+    "Taiwan": "",
+    "Thailand": "",
+    "Turkey": "",
+    "Ukraine": "",
+    "United Kingdom": "",
+    "United States": "",
+    "Pick a domain name service (DNS):": "",
+    "Digital Courage": "",
+    "German Privacy Foundation 1": "",
+    "German Privacy Foundation 2": "",
+    "Chaos Computer Club": "",
+    "ClaraNet": "",
+    "OpenNIC 1": "",
+    "OpenNIC 2": "",
+    "OpenNIC 3": "",
+    "OpenNIC 4": "",
+    "OpenNIC 5": "",
+    "OpenNIC 6": "",
+    "OpenNIC 7": "",
+    "PowerNS": "",
+    "ValiDOM": "",
+    "Freie Unzensierte": "",
+    "Google": "",
+    "Choose Dynamic DNS provider:": "",
+    "Dynamic DNS provider username": "",
+    "Dynamic DNS provider password": "",
+    "Password quality check": "",
+    "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
+    "Static local IP address": "",
+    "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
+    "Local Network Configuration": "",
+    "\\nPlease enter the IP addresses:": "",
+    "This system:": "",
+    "Internet router:": "",
+    "Wiki Configuration": "",
+    "\\nPlease enter your wiki details:": "",
+    "Title:": "",
+    "Domain:": "",
+    "Code:": "",
+    "Domain name validation": "",
+    "Blog Configuration": "",
+    "\\nPlease enter your blog details:": "",
+    "Mediagoblin Configuration": "",
+    "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+    "Hubzilla Configuration": "",
+    "\\nPlease enter your Hubzilla details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+    "\\nPlease enter your Hubzilla details\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+    "Microblog Configuration": "",
+    "\\nPlease enter your Microblog details. Welcome message and background image URL can be left blank.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+    "Welcome Message:": "",
+    "Background image URL:": "",
+    "Developer Configuration": "",
+    "\\nPlease enter your Git hosting site details.\\nIf You don't need developer tools then just select Ok": "",
+    "Your main domain name": "",
+    "\\nWhich domain name should your email/XMPP/IRC/VoIP be associated with?": "",
+    "Which domain name should your email/XMPP/IRC/VoIP be associated with?": "",
+    "Your email address": "",
+    "Configuration filename:": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-config.mo b/locale/fr_BE/freedombone-config.mo
new file mode 100644
index 0000000000000000000000000000000000000000..44fe5efd04f9b4298f516445f2e2e67d573617dd
Binary files /dev/null and b/locale/fr_BE/freedombone-config.mo differ
diff --git a/locale/fr_BE/freedombone-controlpanel-user.json b/locale/fr_BE/freedombone-controlpanel-user.json
new file mode 100644
index 0000000000000000000000000000000000000000..cc97ed07f162fa0d5f65a83add40a3177c56966d
--- /dev/null
+++ b/locale/fr_BE/freedombone-controlpanel-user.json
@@ -0,0 +1,110 @@
+{
+    "Press any key to continue...": "",
+    "Exit back to user mainenance": "",
+    "Freedombone User Control Panel": "",
+    "Remove yourself from a mailing list": "",
+    "Select one of the following:": "",
+    "Remove yourself from mailing list": "",
+    "You have been removed from ${remove_list_name}": "",
+    "Subscribe to a mailing list": "",
+    "You can either enter a subject or an email address\\n": "",
+    "List folder name:": "",
+    "Name between [] on subject line:": "",
+    "List email address:": "",
+    "Public:": "",
+    "yes": "",
+    "Add mailing list": "",
+    "No mailing list name was given": "",
+    "No mailing list subject or address was given": "",
+    "Unrecognised email address": "",
+    "$LIST_NAME list was added": "",
+    "Create an email rule": "",
+    "When email arrives from address:": "",
+    "Move to folder:": "",
+    "no": "",
+    "No email address was given": "",
+    "No folder name was given": "",
+    "Email rule for $RULE_EMAIL was added": "",
+    "When email arrives with subject containing:": "",
+    "No subject text was given": "",
+    "Email rule for subject '$RULE_SUBJECT' was added": "",
+    "Block or unblock emails from a given address": "",
+    "Block it:": "",
+    "Block an email": "",
+    "Unblock an email": "",
+    "Block or unblock emails with text in the subject line": "",
+    "When email arrives with subject text:": "",
+    "No subject was given": "",
+    "Email with subject $BLOCK_SUBJECT is now blocked": "",
+    "Email with subject $BLOCK_SUBJECT is now unblocked": "",
+    "Your PGP/GPG Key": "",
+    "Email Address: $MY_EMAIL_ADDRESS\\n\\nKey ID: $GPG_ID\\n\\nFingerprint: $GPG_FINGERPRINT\\n\\nCreated: $GPG_DATE": "",
+    "Publish your PGP/GPG key": "",
+    "Your key has now been published": "",
+    "Add someone's PGP/GPG key": "",
+    "Enter their email address below": "",
+    "This doesn't look like an email address": "",
+    "Remove someone's PGP/GPG key": "",
+    "It's not a good idea to remove your own encryption key": "",
+    "Add an ssh key for logging in": "",
+    "This will allow you to log into ${PROJECT_NAME} if you have an ssh key on your system, and provides much stronger security than simply using a login password.\\n\\nWARNING: If you make any mistakes here then you may not be able to log in and will need to get the administrator to clear your ssh authorized_keys file.": "",
+    "New ssh key added": "",
+    "Your ssh key has now been added": "",
+    "ssh key already added": "",
+    "That ssh key has already been added": "",
+    "Unrecognised ssh public key": "",
+    "This doesn't look like an ssh key": "",
+    "Remove an ssh key for logging in": "",
+    "Enter the ssh public key which is to be removed. This can be just the address at the end.\\n\\nWARNING: If you make any mistakes here then you may not be able to log in and will need to get the administrator to clear your ssh authorized_keys file.": "",
+    "Remove an ssh public key": "",
+    "The ssh key has been removed": "",
+    "Freedombone Control Panel": "",
+    "SMTP Proxy for $USER": "",
+    "You may need to proxy outgoing email via your ISP's mail server. If so enter the details below.": "",
+    "Enable proxy:": "",
+    "Protocol (smtp/smtps):": "",
+    "ISP mail server:": "",
+    "Port:": "",
+    "Username:": "",
+    "Password:": "",
+    "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+    "Device ID for ${PROJECT_NAME}": "",
+    "In a desktop terminal press shift and select the ID below,\\nthen right click and copy.\\n\\nWithin Connectbot select Menu/Copy and then highlight the ID below\\n\\n$SYNCTHING_ID": "",
+    "Add a Syncthing device ID": "",
+    "Paste the device ID for your laptop/desktop/netbook/phone/tablet below": "",
+    "Device ID:": "",
+    "Description (optional):": "",
+    "That doesn't look like a device ID": "",
+    "That ID has already been added": "",
+    "The ID was added": "",
+    "Remove a Syncthing device ID": "",
+    "Paste the device ID which is to be removed below": "",
+    "That ID wasn't registered anyway": "",
+    "The ID was removed": "",
+    "Your Encryption Keys": "",
+    "Choose an operation:": "",
+    "Show your PGP/GPG key": "",
+    "Publish your PGP/GPG key so that others can find it": "",
+    "Back to main menu": "",
+    "Change Email Filtering Rules": "",
+    "Add yourself to a mailing list": "",
+    "Add an email rule for an address": "",
+    "Add an email rule for a subject": "",
+    "Block or unblock an email address": "",
+    "Block or unblock email with subject text": "",
+    "File Synchronization": "",
+    "Show device ID for ${PROJECT_NAME}": "",
+    "Add an ID for another machine or device": "",
+    "Remove an ID for another machine or device": "",
+    "Manually edit device IDs": "",
+    "User Control Panel": "",
+    "Use Email": "",
+    "Use Tox Chat": "",
+    "Use XMPP Chat": "",
+    "Use IRC": "",
+    "Browse the Web": "",
+    "Set an outgoing email proxy": "",
+    "Administrator controls": "",
+    "Exit to the command line": "",
+    "Log out": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-controlpanel-user.mo b/locale/fr_BE/freedombone-controlpanel-user.mo
new file mode 100644
index 0000000000000000000000000000000000000000..9e62e7846152e09adb841676813940764a5e6727
Binary files /dev/null and b/locale/fr_BE/freedombone-controlpanel-user.mo differ
diff --git a/locale/fr_BE/freedombone-controlpanel.json b/locale/fr_BE/freedombone-controlpanel.json
new file mode 100644
index 0000000000000000000000000000000000000000..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3
--- /dev/null
+++ b/locale/fr_BE/freedombone-controlpanel.json
@@ -0,0 +1,229 @@
+{
+    "Press any key to continue...": "",
+    "Check for updates": "",
+    "Upgrade script was not found": "",
+    "Freedombone Control Panel": "",
+    "Main Repository (Mirrors)": "",
+    "If you do not wish to use the default repositories they can be obtained from mirrors on another ${PROJECT_NAME} server.": "",
+    "URL:": "",
+    "SSH Port:": "",
+    "Password:": "",
+    "Main Repository": "",
+    "Main repository set to $FRIENDS_MIRRORS_SERVER": "",
+    "Add new user": "",
+    "Username:": "",
+    "ssh public key (optional):": "",
+    "New username": "",
+    "No username was given": "",
+    "Invalid username": "",
+    "The username should not contain any spaces": "",
+    "ssh public key": "",
+    "This does not look like an ssh public key": "",
+    "Select User": "",
+    "Select one of the following:": "",
+    "SMTP Proxy for $ADMIN_USER": "",
+    "You may need to proxy outgoing email via your ISP's mail server. If so enter the details below.": "",
+    "Enable proxy:": "",
+    "Protocol (smtp/smtps):": "",
+    "ISP mail server:": "",
+    "Port:": "",
+    "Administrator user": "",
+    "You can't delete the administrator user": "",
+    "No Administrator user found. Check $COMPLETION_FILE": "",
+    "Username not found": "",
+    "Home directory not found": "",
+    "Change password": "",
+    "New password for user $SELECTED_USERNAME": "",
+    "The password should be ${MINIMUM_PASSWORD_LENGTH} or more characters": "",
+    "Password for $SELECTED_USERNAME was changed": "",
+    "IRC Password": "",
+    "Password for all IRC users, or press Enter for no password": "",
+    "The IRC password was changed": "",
+    "Change blog avatar": "",
+    "Enter a URL for an image. It should be approximately a square image.": "",
+    "Your blog avatar has been changed": "",
+    "Change ssh public key": "",
+    "\\nThis is the administrator user.\\n\\nAre you sure you want to change the ssh public key for the administrator?": "",
+    "Change ssh public key for $SELECTED_USERNAME": "",
+    "Paste the ssh public key below": "",
+    "ssh public key was installed": "",
+    "Exit back to user mainenance": "",
+    "Remove a mailing list for $SELECTED_USERNAME": "",
+    "Remove user from mailing list": "",
+    "${SELECTED_USERNAME} has been removed from ${remove_list_name}": "",
+    "Subscribe $SELECTED_USERNAME to a mailing list": "",
+    "You can either enter a subject or an email address\\n": "",
+    "List folder name:": "",
+    "Name between [] on subject line:": "",
+    "List email address:": "",
+    "Public:": "",
+    "yes": "",
+    "Add mailing list": "",
+    "No mailing list name was given": "",
+    "No mailing list subject or address was given": "",
+    "Unrecognised email address": "",
+    "$LIST_NAME list was added": "",
+    "Email rule for user $SELECTED_USERNAME": "",
+    "When email arrives from address:": "",
+    "Move to folder:": "",
+    "no": "",
+    "Add email rule": "",
+    "No email address was given": "",
+    "No folder name was given": "",
+    "Email rule for $RULE_EMAIL was added": "",
+    "Block/Unblock email going to": "",
+    "Block it:": "",
+    "Block/Unblock an email": "",
+    "Block an email": "",
+    "Unblock an email": "",
+    "When email arrives with subject text:": "",
+    "No subject was given": "",
+    "USB Master Keydrive": "",
+    "Plug in a LUKS encrypted USB drive": "",
+    "USB Fragment Keydrive": "",
+    "Backup data to USB": "",
+    "Restore from USB backup": "",
+    "Choose an application to restore:": "",
+    "Everything": "",
+    "Return to the backup and restore menu": "",
+    "Configuration files": "",
+    "MariaDB settings": "",
+    "Let's Encrypt account": "",
+    "Mutt email client settings": "",
+    "GPG keys": "",
+    "Email processing rules": "",
+    "Spam filtering rules": "",
+    "Administrator's README file": "",
+    "IPFS": "",
+    "SSH keys": "",
+    "User configuration files": "",
+    "User local files": "",
+    "User fin files": "",
+    "SSL/TLS certificates": "",
+    "Personal settings": "",
+    "Mailing List": "",
+    "XMPP chat": "",
+    "GNU Social": "",
+    "Hubzilla": "",
+    "Syncthing": "",
+    "Gogs": "",
+    "Wiki": "",
+    "Blog": "",
+    "CJDNS": "",
+    "Email": "",
+    "DLNA": "",
+    "VoIP": "",
+    "RSS reader": "",
+    "Tox": "",
+    "Mediagoblin": "",
+    "Restore from ${remote_domain_name}": "",
+    "Restore data from USB": "",
+    "Plug in your backup USB drive": "",
+    "Restore data from remote server": "",
+    "Unknown admin user": "",
+    "Restore from remote server": "",
+    "Enter the domain name of the server from which you wish to restore": "",
+    "Remote server domain name": "",
+    "Invalid domain name": "",
+    "\\nDo you want to enable other systems to ping this machine?\\n\\nPing may be useful for diagnostic purposes, but for added security you may not want to enable it.": "",
+    "Enable Ping / ICMP": "",
+    "Logging": "",
+    "\\nDo you want to turn logging on?": "",
+    "Restore GPG key for user": "",
+    "Plug in your USB keydrive": "",
+    "Renew SSL certificate": "",
+    "\\nThis will renew a letsencrypt certificate. Select 'yes' to continue": "",
+    "Hubzilla install directory not found": "",
+    "Hubzilla certificate has been renewed": "",
+    "Hubzilla channel directory server": "",
+    "Hubzilla is not installed on this system": "",
+    "When you click on 'channel directory' this is where Hubzilla will obtain its list from": "",
+    "Invalid domain - include the https://": "",
+    "Domain channel directory server changed to $hubzilla_domain_server": "",
+    "Format a USB drive (LUKS encrypted)": "",
+    "Choose a drive:": "",
+    "sda (Beaglebone Black)": "",
+    "sdb": "",
+    "sdc": "",
+    "sdd": "",
+    "Back to Backup and Restore menu": "",
+    "Format USB drive": "",
+    "\\nPlease confirm that you wish to format drive\\n\\n    ${drive}\\n\\nAll current data on the drive will be lost, and you will be prompted to give a password used to encrypt the drive.\\n\\nDANGER: If you screw up here and format the wrong drive it's your own fault!": "",
+    "Remove backups from a USB drive": "",
+    "\\nPlease confirm that you wish to remove backups from this drive\\n\\n    ${drive}\\n\\nYou will not be able to recover them afterwards.": "",
+    "Power off the system": "",
+    "\\nPlease confirm that you wish to power off the system.\\n\\nWARNING: to power on again you will need to have physical access to the hardware.": "",
+    "Restart the system": "",
+    "\\nPlease confirm that you wish to restart the system.\\n\\nWARNING: If you are using full disk encryption then you will need physical access to the hardware to type in the password": "",
+    "Change the name of this system": "",
+    "New local network name": "",
+    "The name of this system on your local network was changed successfully": "",
+    "Set the TLS date/time source": "",
+    "Enter a domain name to use as a TLS time source.\\n\\nFactors to consider when choosing a source are whether you wish that site to know that your system is 'alive' and also what might happen if an adversary were to try to mess with the date/time from that domain (i.e. how much blowback would there be).": "",
+    "Don't include the 'https'": "",
+    "That doesn't look like a domain name": "",
+    "Set a static local IP address": "",
+    "In order to forward incoming internet traffic to this system most internet routers need to know a static local IP address to send the data to.\\n\\n\nEnter a static local IP address for this system.\\n\\nIt will typically be 192.168.1.x": "",
+    "Set the IP address of your internet router/modem": "",
+    "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
+    "Wifi Settings": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
+    "SSID:": "",
+    "Type (wpa2-psk/none):": "",
+    "Passphrase:": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
+    "Backup and Restore": "",
+    "Choose an operation:": "",
+    "Backup data to USB drive": "",
+    "Restore GPG key from USB keydrive": "",
+    "Restore data from USB drive": "",
+    "Configure remote backups": "",
+    "Restore from remote backup": "",
+    "Backup GPG key to USB (master keydrive)": "",
+    "Backup GPG key to USB (fragment keydrive)": "",
+    "Back to main menu": "",
+    "Email Filtering Rules": "",
+    "Add a user to a mailing list": "",
+    "Remove a user from a mailing list": "",
+    "Add an email rule": "",
+    "Block/Unblock an email address": "",
+    "Block/Unblock email with subject text": "",
+    "Manage Users": "",
+    "Add a user": "",
+    "Delete a user": "",
+    "Change user password": "",
+    "Change user ssh public key": "",
+    "Set channel directory server": "",
+    "Media Menu": "",
+    "Attach a drive containing playable media": "",
+    "Remove a drive containing playable media": "",
+    "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
+    "IRC Menu": "",
+    "No IRC server is installed": "",
+    "Set a password for all IRC users": "",
+    "Show current IRC login password": "",
+    "Control Panel": "",
+    "About this system": "",
+    "Reset Tripwire": "",
+    "Logging on/off": "",
+    "Ping enable/disable": "",
+    "Outgoing Email Proxy": "",
+    "Security Settings": "",
+    "Set the main repository (repo mirrors)": "",
+    "Media menu": "",
+    "IRC menu": "",
+    "Change your blog avatar": "",
+    "Wifi menu": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-controlpanel.mo b/locale/fr_BE/freedombone-controlpanel.mo
new file mode 100644
index 0000000000000000000000000000000000000000..f68b5ca634080214f2983323f4fa72900673d4a9
Binary files /dev/null and b/locale/fr_BE/freedombone-controlpanel.mo differ
diff --git a/locale/fr_BE/freedombone-dhparam.json b/locale/fr_BE/freedombone-dhparam.json
new file mode 100644
index 0000000000000000000000000000000000000000..a671f3ea31633c8ce80856aa3b89e8d52368fe8c
--- /dev/null
+++ b/locale/fr_BE/freedombone-dhparam.json
@@ -0,0 +1,7 @@
+{
+    "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
+    "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
+    "$0: openssl is not installed, exiting": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-dhparam.mo b/locale/fr_BE/freedombone-dhparam.mo
new file mode 100644
index 0000000000000000000000000000000000000000..ac1ecfb91bc7eefc30fa753cc856c1db421a5215
Binary files /dev/null and b/locale/fr_BE/freedombone-dhparam.mo differ
diff --git a/locale/fr_BE/freedombone-encrypt-mail.json b/locale/fr_BE/freedombone-encrypt-mail.json
new file mode 100644
index 0000000000000000000000000000000000000000..ddf90a17cc047c4967b3fda928eee083828da453
--- /dev/null
+++ b/locale/fr_BE/freedombone-encrypt-mail.json
@@ -0,0 +1,8 @@
+{
+    "A GPG key for $EMAIL_ADDRESS could not be found!": "",
+    "Calling find": "",
+    "Not copying, no differences between /tmp/msg_$USERNAME and $line": "",
+    "Removing Dovecot indexes and uids": "",
+    "No messages found needing GPG encryption, not": "",
+    "removing Dovecot indexes and UIDs.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-encrypt-mail.mo b/locale/fr_BE/freedombone-encrypt-mail.mo
new file mode 100644
index 0000000000000000000000000000000000000000..3bdc600deccb6c7069686c299cb0689a99d29c63
Binary files /dev/null and b/locale/fr_BE/freedombone-encrypt-mail.mo differ
diff --git a/locale/fr_BE/freedombone-format.json b/locale/fr_BE/freedombone-format.json
new file mode 100644
index 0000000000000000000000000000000000000000..18a586735aeced13bdf0e644130b903b2cee3c1f
--- /dev/null
+++ b/locale/fr_BE/freedombone-format.json
@@ -0,0 +1,5 @@
+{
+    "Formatting $USB_DRIVE as LUKS": "",
+    "Failed to format $USB_DRIVE as LUKS": "",
+    "Failed to open LUKS formatted drive $USB_DRIVE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-format.mo b/locale/fr_BE/freedombone-format.mo
new file mode 100644
index 0000000000000000000000000000000000000000..5331932efd7208ff1142e9bb340b095450a3b0a6
Binary files /dev/null and b/locale/fr_BE/freedombone-format.mo differ
diff --git a/locale/fr_BE/freedombone-ignore.json b/locale/fr_BE/freedombone-ignore.json
new file mode 100644
index 0000000000000000000000000000000000000000..1bc3d94c6ff1aab24a8c7519f5e6df79c2d221cb
--- /dev/null
+++ b/locale/fr_BE/freedombone-ignore.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-ignore -u [username] -e [mail address] -t [text in subject line]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-ignore.mo b/locale/fr_BE/freedombone-ignore.mo
new file mode 100644
index 0000000000000000000000000000000000000000..f4f4898aa06739ec3e207548e223e058dda33798
Binary files /dev/null and b/locale/fr_BE/freedombone-ignore.mo differ
diff --git a/locale/fr_BE/freedombone-image-customise.json b/locale/fr_BE/freedombone-image-customise.json
new file mode 100644
index 0000000000000000000000000000000000000000..ea79f843207e3d2e09c084acc539c35fe666ea50
--- /dev/null
+++ b/locale/fr_BE/freedombone-image-customise.json
@@ -0,0 +1,11 @@
+{
+    "info: Adding apt config to call dpkg via eatmydata": "",
+    "error: unable to find /usr/bin/eatmydata after installing the eatmydata package": "",
+    "info: Removing apt config to call dpkg via eatmydata": "",
+    "warning: missing $rootdir$override": "",
+    "\n .---.                  .              .\n |                      |              |\n |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.\n |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'\n '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'\n\n                    Initial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n    sudo su\n    ${PROJECT_NAME} menuconfig\n\n": "",
+    "Using ssh public key:": "",
+    "Install failed. Press x to continue...": "",
+    "warning: creating initial user $username with well known password!": "",
+    "info: killing leftover processes in chroot": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-image-customise.mo b/locale/fr_BE/freedombone-image-customise.mo
new file mode 100644
index 0000000000000000000000000000000000000000..ff296cb42bf22c358babfdd9e43a3c274e6c29c3
Binary files /dev/null and b/locale/fr_BE/freedombone-image-customise.mo differ
diff --git a/locale/fr_BE/freedombone-image-hardware-setup.json b/locale/fr_BE/freedombone-image-hardware-setup.json
new file mode 100644
index 0000000000000000000000000000000000000000..4b8671a7b5a68eeb9ccd5f6547cdb4e8cca4ee5d
--- /dev/null
+++ b/locale/fr_BE/freedombone-image-hardware-setup.json
@@ -0,0 +1,3 @@
+{
+    "Adding a getty on the serial port": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-image-hardware-setup.mo b/locale/fr_BE/freedombone-image-hardware-setup.mo
new file mode 100644
index 0000000000000000000000000000000000000000..6f796fcebaa8906cf2bd4d540b6360a9528b7fe0
Binary files /dev/null and b/locale/fr_BE/freedombone-image-hardware-setup.mo differ
diff --git a/locale/fr_BE/freedombone-image-make.json b/locale/fr_BE/freedombone-image-make.json
new file mode 100644
index 0000000000000000000000000000000000000000..3efb850012846acb0283ad9f5c129786b0440d95
--- /dev/null
+++ b/locale/fr_BE/freedombone-image-make.json
@@ -0,0 +1,4 @@
+{
+    "error: Missing MIRROR and SUITE settings inherited from Makefile.": "",
+    "starting $VMDEBOOTSTRAP": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-image-make.mo b/locale/fr_BE/freedombone-image-make.mo
new file mode 100644
index 0000000000000000000000000000000000000000..d23c3f221d894cd6b5b9f7b764156fd5b88f40b2
Binary files /dev/null and b/locale/fr_BE/freedombone-image-make.mo differ
diff --git a/locale/fr_BE/freedombone-image-mesh.json b/locale/fr_BE/freedombone-image-mesh.json
new file mode 100644
index 0000000000000000000000000000000000000000..d7fd53ef9b92719945012bcb6c5b81f724e6d746
--- /dev/null
+++ b/locale/fr_BE/freedombone-image-mesh.json
@@ -0,0 +1,18 @@
+{
+    "Regenerating ssh host keys": "",
+    "Address:    $ZERONET_BLOG_ADDRESS": "",
+    "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_BLOG_ADDRESS": "",
+    "ZeroNet Blog address:     $ZERONET_BLOG_ADDRESS": "",
+    "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "Address:    $ZERONET_MAIL_ADDRESS": "",
+    "Public key: $ZERONET_MAIL_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_MAIL_ADDRESS": "",
+    "ZeroNet Mail address:     $ZERONET_MAIL_ADDRESS": "",
+    "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY": "",
+    "Address:    $ZERONET_FORUM_ADDRESS": "",
+    "Public key: $ZERONET_FORUM_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_FORUM_ADDRESS": "",
+    "Forum address:     $ZERONET_FORUM_ADDRESS": "",
+    "Forum private key: $ZERONET_FORUM_PRIVATE_KEY": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-image-mesh.mo b/locale/fr_BE/freedombone-image-mesh.mo
new file mode 100644
index 0000000000000000000000000000000000000000..5c8a261497c08d45b75760b064fb6852eb9554c6
Binary files /dev/null and b/locale/fr_BE/freedombone-image-mesh.mo differ
diff --git a/locale/fr_BE/freedombone-image.json b/locale/fr_BE/freedombone-image.json
new file mode 100644
index 0000000000000000000000000000000000000000..a4fd155c12e7d192a77b2f2a39850c333784c32f
--- /dev/null
+++ b/locale/fr_BE/freedombone-image.json
@@ -0,0 +1,10 @@
+{
+    "Config file $CONFIG_FILENAME not found": "",
+    "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
+    "\nImage was created.\n\nYou will be able to log into it with:\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+    "Username: $USERNAME\nPassword: $PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-image.mo b/locale/fr_BE/freedombone-image.mo
new file mode 100644
index 0000000000000000000000000000000000000000..fb5eaf224fb147d5635e9822b969607786cbffe1
Binary files /dev/null and b/locale/fr_BE/freedombone-image.mo differ
diff --git a/locale/fr_BE/freedombone-keydrive.json b/locale/fr_BE/freedombone-keydrive.json
new file mode 100644
index 0000000000000000000000000000000000000000..eb6c94efbf91a0e57cbc02c6be1d013d9945563e
--- /dev/null
+++ b/locale/fr_BE/freedombone-keydrive.json
@@ -0,0 +1,17 @@
+{
+    "${PROJECT_NAME}-keydrive -u [username] -d [device, eg. sdb] --master [yes/no] -n [no of fragments] --format [yes/no]": "",
+    "Home directory for $MY_USERNAME not found. This user may not exist on the system": "",
+    "There was a problem mounting the USB drive to $USB_MOUNT": "",
+    "No .gnupg directory was found for $MY_USERNAME": "",
+    "GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
+    "Unable to copy gpg keyring to $USB_DRIVE": "",
+    "Made directory $FRAGMENTS_DIR": "",
+    "There was a problem making the directory $FRAGMENTS_DIR": "",
+    "A key fragment already exists on the drive for the user $MY_USERNAME": "",
+    "Not enough key fragments available ${no_of_local_shares}": "",
+    "Number of fragments on the drive: ${no_of_usb_shares}": "",
+    "Too many key fragments exist in $FRAGMENTS_DIR": "",
+    "There was a problem copying the key fragment to $USB_DRIVE": "",
+    "Files found: ${no_of_usb_shares}": "",
+    "Key fragment copied to $USB_DRIVE. You may now remove the drive.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-keydrive.mo b/locale/fr_BE/freedombone-keydrive.mo
new file mode 100644
index 0000000000000000000000000000000000000000..cf6384ab47ca1a8150824fab486f9027bc84f81b
Binary files /dev/null and b/locale/fr_BE/freedombone-keydrive.mo differ
diff --git a/locale/fr_BE/freedombone-mesh-install.json b/locale/fr_BE/freedombone-mesh-install.json
new file mode 100644
index 0000000000000000000000000000000000000000..633b692dc158b45186f0162e9df9f535fce9a53a
--- /dev/null
+++ b/locale/fr_BE/freedombone-mesh-install.json
@@ -0,0 +1,7 @@
+{
+    "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": "",
+    "File not found /usr/local/bin/tox-bootstrapd": "",
+    "Account to run Tox's DHT bootstrap daemon": "",
+    "File not found $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.conf": "",
+    "File not found $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.service": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-mesh-install.mo b/locale/fr_BE/freedombone-mesh-install.mo
new file mode 100644
index 0000000000000000000000000000000000000000..8a39880884f15f8ccf1939bdbf0999fa4b973b99
Binary files /dev/null and b/locale/fr_BE/freedombone-mesh-install.mo differ
diff --git a/locale/fr_BE/freedombone-mesh.json b/locale/fr_BE/freedombone-mesh.json
new file mode 100644
index 0000000000000000000000000000000000000000..af1b22bbfab00bfd7605524667decad3e9108cf1
--- /dev/null
+++ b/locale/fr_BE/freedombone-mesh.json
@@ -0,0 +1,11 @@
+{
+    "File not found /usr/local/bin/tox-bootstrapd": "",
+    "File not found $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.conf": "",
+    "File not found ~/develop/toxcore/other/bootstrap_daemon/tox-bootstrapd.service": "",
+    "Couldn't install toxid": "",
+    "Select a user on $AVAHI_DOMAIN:": "",
+    "Tox ID for $AVAHI_DOMAIN was not found": "",
+    "    Label:    $AVAHI_DOMAIN": "",
+    "    Address:  $AVAHI_DOMAIN": "",
+    "    Username: $USER": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-mesh.mo b/locale/fr_BE/freedombone-mesh.mo
new file mode 100644
index 0000000000000000000000000000000000000000..8c9f54bfe8de467956b0957292b3ad845d64dd90
Binary files /dev/null and b/locale/fr_BE/freedombone-mesh.mo differ
diff --git a/locale/fr_BE/freedombone-meshweb.json b/locale/fr_BE/freedombone-meshweb.json
new file mode 100644
index 0000000000000000000000000000000000000000..166d9b1f873ba073a28337d0e71f19e3a5b75051
--- /dev/null
+++ b/locale/fr_BE/freedombone-meshweb.json
@@ -0,0 +1,27 @@
+{
+    "Blogging on the Mesh": "",
+    "A decentralized discussion group": "",
+    "Mail for the Mesh": "",
+    "IPFS could not be initialised": "",
+    "${MY_USERNAME}'s Blog": "",
+    "Address:    $ZERONET_BLOG_ADDRESS": "",
+    "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "Unable to find site directory: $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS": "",
+    "Blog address:     $ZERONET_BLOG_ADDRESS": "",
+    "Blog private key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "ZeroNet Blog address: $ZERONET_BLOG_ADDRESS": "",
+    "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "${MY_USERNAME}'s Mail": "",
+    "Address:    $ZERONET_MAIL_ADDRESS": "",
+    "Public key: $ZERONET_MAIL_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_MAIL_ADDRESS": "",
+    "ZeroNet Mail address:     $ZERONET_MAIL_ADDRESS": "",
+    "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY": "",
+    "Address:    $ZERONET_FORUM_ADDRESS": "",
+    "Public key: $ZERONET_FORUM_PRIVATE_KEY": "",
+    "Unable to find site directory: $ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS": "",
+    "Forum address:     $ZERONET_FORUM_ADDRESS": "",
+    "Forum private key: $ZERONET_FORUM_PRIVATE_KEY": "",
+    "ZeroNet Forum address: $ZERONET_FORUM_ADDRESS": "",
+    "ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-meshweb.mo b/locale/fr_BE/freedombone-meshweb.mo
new file mode 100644
index 0000000000000000000000000000000000000000..f53a4f1086af76625d66dfde1e3b5f76d36fbe81
Binary files /dev/null and b/locale/fr_BE/freedombone-meshweb.mo differ
diff --git a/locale/fr_BE/freedombone-mirrors.json b/locale/fr_BE/freedombone-mirrors.json
new file mode 100644
index 0000000000000000000000000000000000000000..bcebe53c351be37c712bfd15c04d03d2d77454a1
--- /dev/null
+++ b/locale/fr_BE/freedombone-mirrors.json
@@ -0,0 +1,8 @@
+{
+    "${PROJECT_NAME}-mirrors --sync [domain/url] -p [password]": "",
+    "  -p|--password [password]    Friend's mirrors user password": "",
+    "  -m|--mypassword [password]  Local mirrors user password": "",
+    "     --port [number]          Friend's server ssh port number": "",
+    "  -s|--sync [domain]          Friend's server domain to sync with": "",
+    "WARNING: failed to mirror repo ${repo_url}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-mirrors.mo b/locale/fr_BE/freedombone-mirrors.mo
new file mode 100644
index 0000000000000000000000000000000000000000..5056b1d20685686b9964620324d75f3009d423d6
Binary files /dev/null and b/locale/fr_BE/freedombone-mirrors.mo differ
diff --git a/locale/fr_BE/freedombone-pin-cert.json b/locale/fr_BE/freedombone-pin-cert.json
new file mode 100644
index 0000000000000000000000000000000000000000..dc2fd0c16342169cfd8bc3445b2a166b9614312c
--- /dev/null
+++ b/locale/fr_BE/freedombone-pin-cert.json
@@ -0,0 +1,3 @@
+{
+    "No certificate found for $DOMAIN_NAME": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-pin-cert.mo b/locale/fr_BE/freedombone-pin-cert.mo
new file mode 100644
index 0000000000000000000000000000000000000000..ffd7178b513dfeb741c3cd404f86ef2d801ff074
Binary files /dev/null and b/locale/fr_BE/freedombone-pin-cert.mo differ
diff --git a/locale/fr_BE/freedombone-recoverkey.json b/locale/fr_BE/freedombone-recoverkey.json
new file mode 100644
index 0000000000000000000000000000000000000000..c48d48527dd5fcbb9f8a2d8171fc8848dd1b614a
--- /dev/null
+++ b/locale/fr_BE/freedombone-recoverkey.json
@@ -0,0 +1,11 @@
+{
+    "${PROJECT_NAME}-recoverkey -u [username] -d [drive]": "",
+    "User $MY_USERNAME does not exist on the system": "",
+    "Encryption keys": "",
+    "There was a problem mounting the USB drive to $GPG_USB_MOUNT": "",
+    "The directory $GPG_USB_MOUNT/.gnupg or $GPG_USB_MOUNT/.gnupg_fragments was not found": "",
+    "GPG Keyring loaded to $HOME_DIR": "",
+    "ssh keys imported": "",
+    "Now remove the USB drive. Insert the next drive containing a key fragment, or select Ok to finish": "",
+    "Starting key retrieval from $REMOTE_SERVER...": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-recoverkey.mo b/locale/fr_BE/freedombone-recoverkey.mo
new file mode 100644
index 0000000000000000000000000000000000000000..4da6218058ceaec148209ecdadce9fe6608229b5
Binary files /dev/null and b/locale/fr_BE/freedombone-recoverkey.mo differ
diff --git a/locale/fr_BE/freedombone-remote.json b/locale/fr_BE/freedombone-remote.json
new file mode 100644
index 0000000000000000000000000000000000000000..c1c0d95e1d2d2014a2ca85c90430f8f5b3b09778
--- /dev/null
+++ b/locale/fr_BE/freedombone-remote.json
@@ -0,0 +1,6 @@
+{
+    "${PROJECT_NAME}-remote -u [username] -l [backup list filename] -m [min password length]": "",
+    "The user /home/$MY_USERNAME does not exist on the system": "",
+    "No remote backups list found: $FRIENDS_SERVERS_LIST": "",
+    "Remote backups list: $FRIENDS_SERVERS_LIST": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-remote.mo b/locale/fr_BE/freedombone-remote.mo
new file mode 100644
index 0000000000000000000000000000000000000000..3bfe477559d02ff543405bc95673f5eca9edb147
Binary files /dev/null and b/locale/fr_BE/freedombone-remote.mo differ
diff --git a/locale/fr_BE/freedombone-renew-cert.json b/locale/fr_BE/freedombone-renew-cert.json
new file mode 100644
index 0000000000000000000000000000000000000000..05340eeda502e70999cd20c18707cf8c704f29ca
--- /dev/null
+++ b/locale/fr_BE/freedombone-renew-cert.json
@@ -0,0 +1,11 @@
+{
+    "${PROJECT_NAME}-renew-cert -h [hostname] -p [provider]": "",
+    "Adding Let's Encrypt certificate": "",
+    "Renewing Let's Encrypt certificate": "",
+    "Unable to add Let's encrypt certificate": "",
+    "Save the requested public key to /etc/ssl/certs/$HOSTNAME.new.crt": "",
+    "/etc/ssl/certs/$HOSTNAME.new.crt then run this command again.": "",
+    "$0: openssl is not installed, exiting": "",
+    "/etc/nginx/sites-available/$HOSTNAME does not exist": "",
+    "$PROVIDER is not currently supported": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-renew-cert.mo b/locale/fr_BE/freedombone-renew-cert.mo
new file mode 100644
index 0000000000000000000000000000000000000000..e3484ec7adec3c47eecf33e7669c6ab4339a1a10
Binary files /dev/null and b/locale/fr_BE/freedombone-renew-cert.mo differ
diff --git a/locale/fr_BE/freedombone-repair-database.json b/locale/fr_BE/freedombone-repair-database.json
new file mode 100644
index 0000000000000000000000000000000000000000..51649c7102979a3fcca343cc9512d15b5b7659e2
--- /dev/null
+++ b/locale/fr_BE/freedombone-repair-database.json
@@ -0,0 +1,4 @@
+{
+    "$DATABASE database corruption could not be repaired. Restored from backup.": "",
+    "${PROJECT_NAME} database maintenance": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-repair-database.mo b/locale/fr_BE/freedombone-repair-database.mo
new file mode 100644
index 0000000000000000000000000000000000000000..d2dd9433c9978a9b0c661a2869db8edd2942b8ad
Binary files /dev/null and b/locale/fr_BE/freedombone-repair-database.mo differ
diff --git a/locale/fr_BE/freedombone-restore-local.json b/locale/fr_BE/freedombone-restore-local.json
new file mode 100644
index 0000000000000000000000000000000000000000..7941ffcc13e20d5c9b8d55c9da7289a4a246bd21
--- /dev/null
+++ b/locale/fr_BE/freedombone-restore-local.json
@@ -0,0 +1,55 @@
+{
+    "Please attach a USB drive": "",
+    "There was a problem mounting the USB drive to $USB_MOUNT": "",
+    "Unable to unmount the drive. This means that the backup did not work": "",
+    "Setting permissions": "",
+    "Unmount encrypted USB": "",
+    "No backup directory found on the USB drive.": "",
+    "Checking that admin user exists": "",
+    "Username $ADMIN_USERNAME not found. Reinstall ${PROJECT_NAME} with this username.": "",
+    "Copying GPG keys from admin user to root": "",
+    "Restoring ${1} database": "",
+    "Unable to restore ${1} database": "",
+    "Restoring ${1} installation": "",
+    "Restoring configuration files": "",
+    "The admin username has changed from $PREV_ADMIN_USERNAME to $ADMIN_USERNAME. To restore you will first need to install a new ${PROJECT_NAME} system with an initial admin user named $PREV_ADMIN_USERNAME": "",
+    "Restoring mysql settings": "",
+    "Get the MariaDB password from the backup": "",
+    "MariaDB password file not found": "",
+    "Restore the MariaDB user table": "",
+    "Try again using the password obtained from backup": "",
+    "Restarting database": "",
+    "Change the MariaDB password to the backup version": "",
+    "Restoring Lets Encrypt settings": "",
+    "Restoring Tor settings": "",
+    "Restoring Mutt settings for $USERNAME": "",
+    "Restoring gnupg settings for $USERNAME": "",
+    "Restoring procmail settings for $USERNAME": "",
+    "Restoring spamassassin settings for $USERNAME": "",
+    "Restoring admin user README": "",
+    "Restoring IPFS": "",
+    "Restoring ssh keys for $USERNAME": "",
+    "Restoring config files for $USERNAME": "",
+    "Restoring fin files for $USERNAME": "",
+    "Restoring local files for $USERNAME": "",
+    "Restoring certificates": "",
+    "Restoring personal settings for $USERNAME": "",
+    "Restoring public mailing list": "",
+    "Restoring XMPP settings": "",
+    "Restoring syncthing configuration": "",
+    "Restoring syncthing shared files": "",
+    "Restoring syncthing files for $USERNAME": "",
+    "Restoring Gogs settings": "",
+    "Restoring Gogs repos": "",
+    "Restoring Gogs authorized_keys": "",
+    "Restoring Wiki installation ${WIKI_DOMAIN_NAME}": "",
+    "Restoring blog installation": "",
+    "No content directory found after restoring blog": "",
+    "Restoring cjdns installation": "",
+    "Restoring emails for $USERNAME": "",
+    "Restoring DLNA cache": "",
+    "Restoring VoIP settings": "",
+    "Restoring Tox node settings": "",
+    "Restore $RESTORE_APP": "",
+    "Restore from USB drive is complete. You can now unplug it.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-restore-local.mo b/locale/fr_BE/freedombone-restore-local.mo
new file mode 100644
index 0000000000000000000000000000000000000000..f9b4fcf4c2e0326e55783e4666e543d34b19215e
Binary files /dev/null and b/locale/fr_BE/freedombone-restore-local.mo differ
diff --git a/locale/fr_BE/freedombone-restore-remote.json b/locale/fr_BE/freedombone-restore-remote.json
new file mode 100644
index 0000000000000000000000000000000000000000..153baafb095353c07d0fa3abf9d60bed2d505595
--- /dev/null
+++ b/locale/fr_BE/freedombone-restore-remote.json
@@ -0,0 +1,41 @@
+{
+    "No friends list found at $BACKUP_LIST": "",
+    "Server not found within the friends list": "",
+    "Copying GPG keys from admin user to root": "",
+    "Restoring ${1} database": "",
+    "Unable to restore ${1} database": "",
+    "Restoring ${1} installation": "",
+    "Restoring configuration files": "",
+    "Restoring MariaDB settings": "",
+    "Get the MariaDB password from the backup": "",
+    "MariaDB password file not found": "",
+    "Restore the MariaDB user table": "",
+    "Try again using the password obtained from backup": "",
+    "Restarting database": "",
+    "Change the MariaDB password to the backup version": "",
+    "Restoring Lets Encrypt settings": "",
+    "Restoring Tor settings": "",
+    "Restoring Mutt settings for $USERNAME": "",
+    "Restoring gnupg settings for $USERNAME": "",
+    "Restoring procmail settings for $USERNAME": "",
+    "Restoring spamassassin settings for $USERNAME": "",
+    "Restoring README": "",
+    "Restoring IPFS": "",
+    "Restoring ssh keys for $USERNAME": "",
+    "Restoring config files for $USERNAME": "",
+    "Restoring fin files for $USERNAME": "",
+    "Restoring local files for $USERNAME": "",
+    "Restoring certificates": "",
+    "Restoring personal settings for $USERNAME": "",
+    "Restoring public mailing list": "",
+    "Restoring XMPP settings": "",
+    "Restoring syncthing configuration": "",
+    "Restoring syncthing shared files": "",
+    "Restoring syncthing files for $USERNAME": "",
+    "Restoring Mediagoblin installation": "",
+    "Restoring Gogs repos": "",
+    "Restoring Gogs authorized_keys": "",
+    "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+    "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+    "No content directory found after restoring blog": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-restore-remote.mo b/locale/fr_BE/freedombone-restore-remote.mo
new file mode 100644
index 0000000000000000000000000000000000000000..98b52b1e6beb149636d186daba5aa02f15d727bb
Binary files /dev/null and b/locale/fr_BE/freedombone-restore-remote.mo differ
diff --git a/locale/fr_BE/freedombone-rmemail.json b/locale/fr_BE/freedombone-rmemail.json
new file mode 100644
index 0000000000000000000000000000000000000000..d67f055dd8ffd8bbea1f84bbaa4815ec4b658c2d
--- /dev/null
+++ b/locale/fr_BE/freedombone-rmemail.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-rmemail -u [username] -e [email address]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-rmemail.mo b/locale/fr_BE/freedombone-rmemail.mo
new file mode 100644
index 0000000000000000000000000000000000000000..345eda5f0a2ab7ffab115ca62364df185aba7e27
Binary files /dev/null and b/locale/fr_BE/freedombone-rmemail.mo differ
diff --git a/locale/fr_BE/freedombone-rmlist.json b/locale/fr_BE/freedombone-rmlist.json
new file mode 100644
index 0000000000000000000000000000000000000000..d6bc8756442675cae64097827d0359cf470bb4a9
--- /dev/null
+++ b/locale/fr_BE/freedombone-rmlist.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-rmlist -u [username] -l [mailing list name] -e [list email address]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-rmlist.mo b/locale/fr_BE/freedombone-rmlist.mo
new file mode 100644
index 0000000000000000000000000000000000000000..af88edc4b3cbbdc3c0667d0b91a8771ffb30c7be
Binary files /dev/null and b/locale/fr_BE/freedombone-rmlist.mo differ
diff --git a/locale/fr_BE/freedombone-rmsipuser.json b/locale/fr_BE/freedombone-rmsipuser.json
new file mode 100644
index 0000000000000000000000000000000000000000..52e3578e598d96a1fe415b646b31e93ced51813b
--- /dev/null
+++ b/locale/fr_BE/freedombone-rmsipuser.json
@@ -0,0 +1,6 @@
+{
+    "${PROJECT_NAME}-rmsipuser [username]": "",
+    "SIP configuration file not found": "",
+    "User $MY_USERNAME not found": "",
+    "SIP user $MY_USERNAME removed": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-rmsipuser.mo b/locale/fr_BE/freedombone-rmsipuser.mo
new file mode 100644
index 0000000000000000000000000000000000000000..97113cccd899fedecf1da51edc6474af3e209476
Binary files /dev/null and b/locale/fr_BE/freedombone-rmsipuser.mo differ
diff --git a/locale/fr_BE/freedombone-rmuser.json b/locale/fr_BE/freedombone-rmuser.json
new file mode 100644
index 0000000000000000000000000000000000000000..77abc30066144dd2cd48e506566bf6b292085ec4
--- /dev/null
+++ b/locale/fr_BE/freedombone-rmuser.json
@@ -0,0 +1,10 @@
+{
+    "Home directory does not exist for $MY_USERNAME": "",
+    "$COMPLETION_FILE not found": "",
+    "No admin user specified in $COMPLETION_FILE": "",
+    "No admin username specified in $COMPLETION_FILE": "",
+    "The administrator user cannot be removed": "",
+    "Do you really wish to remove the user '$MY_USERNAME' (y/n) ?": "",
+    "User $MY_USERNAME was not removed": "",
+    "User $MY_USERNAME was removed": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-rmuser.mo b/locale/fr_BE/freedombone-rmuser.mo
new file mode 100644
index 0000000000000000000000000000000000000000..36e062f89d83bec00473864a32f40c4d199932cb
Binary files /dev/null and b/locale/fr_BE/freedombone-rmuser.mo differ
diff --git a/locale/fr_BE/freedombone-rmxmpp.json b/locale/fr_BE/freedombone-rmxmpp.json
new file mode 100644
index 0000000000000000000000000000000000000000..12011469df984c23009f3f37a59e9813f2b2ea2c
--- /dev/null
+++ b/locale/fr_BE/freedombone-rmxmpp.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-rmxmpp -e [email address]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-rmxmpp.mo b/locale/fr_BE/freedombone-rmxmpp.mo
new file mode 100644
index 0000000000000000000000000000000000000000..fd9ace6f758c5452f8413503e8f60dda5dcb0b87
Binary files /dev/null and b/locale/fr_BE/freedombone-rmxmpp.mo differ
diff --git a/locale/fr_BE/freedombone-sec.json b/locale/fr_BE/freedombone-sec.json
new file mode 100644
index 0000000000000000000000000000000000000000..a95e9be504e8afdbf2d21fb00dd4a0797db932f7
--- /dev/null
+++ b/locale/fr_BE/freedombone-sec.json
@@ -0,0 +1,29 @@
+{
+    "Freedombone Security Configuration": "",
+    "\\nWeb/IMAP Ciphers:": "",
+    "Protocols:": "",
+    "Ciphers:": "",
+    "\\nSecure Shell Ciphers:": "",
+    "MACs:": "",
+    "KEX:": "",
+    "Host key algorithms:": "",
+    "SSH Passwords": "",
+    "\\nAllow SSH login using passwords?": "",
+    "\\nXMPP Ciphers:": "",
+    "ECC Curve:": "",
+    "Final Confirmation": "",
+    "\\nPlease confirm that you wish your security settings to be changed?\\n\\nWARNING: any mistakes made in the security settings could compromise your system, so be extra careful when answering 'yes'.": "",
+    "Renew a StartSSL certificate": "",
+    "Freedombone Security Settings": "",
+    "Enter the domain name": "",
+    "Don't include the https://": "",
+    "An existing certificate for $renew_domain was not found": "",
+    "Invalid domain name: $renew_domain": "",
+    "Renew a Let's Encrypt certificate": "",
+    "Create a new Let's Encrypt certificate": "",
+    "Invalid domain name: $new_domain": "",
+    "Update ciphersuite": "",
+    "The ciphersuite has been updated to recommended versions": "",
+    "Import file $IMPORT_FILE not found": "",
+    "Security settings exported to $EXPORT_FILE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-sec.mo b/locale/fr_BE/freedombone-sec.mo
new file mode 100644
index 0000000000000000000000000000000000000000..6212166b5a7c610793598f249b3ea24ef579b373
Binary files /dev/null and b/locale/fr_BE/freedombone-sec.mo differ
diff --git a/locale/fr_BE/freedombone-splitkey.json b/locale/fr_BE/freedombone-splitkey.json
new file mode 100644
index 0000000000000000000000000000000000000000..5f1aeaf4eeab6b81844a50644c8c59e5b4963890
--- /dev/null
+++ b/locale/fr_BE/freedombone-splitkey.json
@@ -0,0 +1,12 @@
+{
+    "${PROJECT_NAME}-splitkey -u [username] -n [number of fragments] -e [email address] --fullname [Full name]": "",
+    "User $MY_USERNAME does not exist on the system": "",
+    "gpg key for $MY_EMAIL_ADDRESS was not found": "",
+    "gpg backup key for '$MY_NAME' was not found": "",
+    "Unable to extract public key for $KEYID": "",
+    "Unable to extract private key for $KEYID": "",
+    "Unable to extract backup public key for $MY_BACKUP_KEY_ID": "",
+    "Unable to extract backup private key for $MY_BACKUP_KEY_ID": "",
+    "Unable to split the gpg key": "",
+    "$KEY_SHARES key shares created": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-splitkey.mo b/locale/fr_BE/freedombone-splitkey.mo
new file mode 100644
index 0000000000000000000000000000000000000000..d0c1689f7462d43c11f95c13d9322639a16b7de0
Binary files /dev/null and b/locale/fr_BE/freedombone-splitkey.mo differ
diff --git a/locale/fr_BE/freedombone-unignore.json b/locale/fr_BE/freedombone-unignore.json
new file mode 100644
index 0000000000000000000000000000000000000000..135e9244491bae413c7ae41d4fb33d148a10222a
--- /dev/null
+++ b/locale/fr_BE/freedombone-unignore.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-unignore -u [username] -e [mail address] -t [text in subject line]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-unignore.mo b/locale/fr_BE/freedombone-unignore.mo
new file mode 100644
index 0000000000000000000000000000000000000000..3224b5e42f8a8fd66cc3c0fe24ef7017c9ad42d9
Binary files /dev/null and b/locale/fr_BE/freedombone-unignore.mo differ
diff --git a/locale/fr_BE/freedombone-update-date.json b/locale/fr_BE/freedombone-update-date.json
new file mode 100644
index 0000000000000000000000000000000000000000..948bd604f69cc37a86acc7ec0269cac83fb60be0
--- /dev/null
+++ b/locale/fr_BE/freedombone-update-date.json
@@ -0,0 +1,5 @@
+{
+    "Date went backwards between tlsdate updates. ": "",
+    "tlsdate anomaly": "",
+    "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-update-date.mo b/locale/fr_BE/freedombone-update-date.mo
new file mode 100644
index 0000000000000000000000000000000000000000..4ff1cd95f1342ffb3e31131618f4d3736eacfe14
Binary files /dev/null and b/locale/fr_BE/freedombone-update-date.mo differ
diff --git a/locale/fr_BE/freedombone-wifi.json b/locale/fr_BE/freedombone-wifi.json
new file mode 100644
index 0000000000000000000000000000000000000000..73b09f04cffdee76b0243c0c9de85ac3a487be4f
--- /dev/null
+++ b/locale/fr_BE/freedombone-wifi.json
@@ -0,0 +1,9 @@
+{
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
+    "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-wifi.mo b/locale/fr_BE/freedombone-wifi.mo
new file mode 100644
index 0000000000000000000000000000000000000000..b9885e2a302b67567f9b32f7766b2a4e70139a34
Binary files /dev/null and b/locale/fr_BE/freedombone-wifi.mo differ
diff --git a/locale/fr_BE/freedombone-xmpp-pass.json b/locale/fr_BE/freedombone-xmpp-pass.json
new file mode 100644
index 0000000000000000000000000000000000000000..a416ce8ea4c40ab65daccb193de213ebb55de8ca
--- /dev/null
+++ b/locale/fr_BE/freedombone-xmpp-pass.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-xmpp-pass -e [email address]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-xmpp-pass.mo b/locale/fr_BE/freedombone-xmpp-pass.mo
new file mode 100644
index 0000000000000000000000000000000000000000..0bc90e3da34b45f295fb679808f1ca3b6cc10488
Binary files /dev/null and b/locale/fr_BE/freedombone-xmpp-pass.mo differ
diff --git a/locale/fr_BE/freedombone-zram.json b/locale/fr_BE/freedombone-zram.json
new file mode 100644
index 0000000000000000000000000000000000000000..de1f963de3c834847d79b2015137874edfce53bd
--- /dev/null
+++ b/locale/fr_BE/freedombone-zram.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-zram [on|off]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-zram.mo b/locale/fr_BE/freedombone-zram.mo
new file mode 100644
index 0000000000000000000000000000000000000000..3d8c714915cd5d5a2a2f191733986fc709344b4b
Binary files /dev/null and b/locale/fr_BE/freedombone-zram.mo differ
diff --git a/locale/fr_BE/freedombone.json b/locale/fr_BE/freedombone.json
new file mode 100644
index 0000000000000000000000000000000000000000..91cd0528b63628d1f946bebcd44258b1116766bd
--- /dev/null
+++ b/locale/fr_BE/freedombone.json
@@ -0,0 +1,146 @@
+{
+    "Search engine login": "",
+    "${PROJECT_NAME} -c [configuration file]": "",
+    "or for more specialised variants you can specify '$VARIANT_MAILBOX', '$VARIANT_CLOUD',": "",
+    "'$VARIANT_CHAT', '$VARIANT_SOCIAL', '$VARIANT_MEDIA', '$VARIANT_WRITER', '$VARIANT_DEVELOPER'": "",
+    "or '$VARIANT_MESH'.": "",
+    "If you wish to install everything except email then use the '$VARIANT_NONMAILBOX' variaint.": "",
+    "The command ${PROJECT_NAME}-remote was not found": "",
+    "  ${PROJECT_NAME}-remote -u $MY_USERNAME -l $FRIENDS_SERVERS_LIST -m $MINIMUM_PASSWORD_LENGTH -r yes": "",
+    "The domain $TEST_DOMAIN_NAME has too many subdomains. It should be of the type w.x.y.z, x.y.z or y.z": "",
+    "The domain $TEST_DOMAIN_NAME has no top level domain. It should be of the type w.x.y.z, x.y.z or y.z": "",
+    "The command ${PROJECT_NAME}-config was not found": "",
+    "  ${PROJECT_NAME}-config -u $MY_USERNAME -f $CONFIGURATION_FILE -w $PROJECT_WEBSITE -b $PROJECT_BITMESSAGE -m $MINIMUM_PASSWORD_LENGTH --minimal [yes|no]": "",
+    "Encrypted backup to other servers": "",
+    "${PROJECT_NAME} Configuration": "",
+    "\\nDo you wish to configure some remote backup locations?": "",
+    "There is no user '$MY_USERNAME' on the system. Use 'adduser $MY_USERNAME' to create the user.": "",
+    "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant.": "",
+    "The configuration file $CONFIGURATION_FILE was not found": "",
+    "Check your internet connection, /etc/network/interfaces and /etc/resolv.conf, then delete $COMPLETION_FILE, run 'rm -fR /var/lib/apt/lists/* && apt-get update --fix-missing' and run this script again. If hash sum mismatches persist then try setting $DEBIAN_REPO to a different mirror and also change /etc/apt/sources.list.": "",
+    "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+    "${onion_service_name} onion site hostname not found": "",
+    "Private certificate for $CHECK_HOSTNAME was not created": "",
+    "Public certificate for $CHECK_HOSTNAME was not created": "",
+    "Diffie–Hellman parameters for $CHECK_HOSTNAME were not created": "",
+    "Lets Encrypt failed for $SITE_DOMAIN_NAME, so try making a self-signed cert": "",
+    "Lets Encrypt failed for $SITE_DOMAIN_NAME": "",
+    "Mesh Networking (cjdns)": "",
+    "cjdns IPv6 address: $CJDNS_IPV6": "",
+    "cjdns public key: $CJDNS_PUBLIC_KEY": "",
+    "cjdns private key: $CJDNS_PRIVATE_KEY": "",
+    "cjdns password: $CJDNS_PASSWORD": "",
+    "cjdns port: $CJDNS_PORT": "",
+    "Forward port $CJDNS_PORT from your internet router to the ${PROJECT_NAME}": "",
+    "Address:    $ZERONET_BLOG_ADDRESS": "",
+    "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_BLOG_ADDRESS": "",
+    "ZeroNet Blog address:     $ZERONET_BLOG_ADDRESS": "",
+    "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "Address:    $ZERONET_MAIL_ADDRESS": "",
+    "Public key: $ZERONET_MAIL_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_MAIL_ADDRESS": "",
+    "ZeroNet Mail address:     $ZERONET_MAIL_ADDRESS": "",
+    "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY": "",
+    "ZeroNet Mail address": "",
+    "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS": "",
+    "${MY_USERNAME}'s Forum": "",
+    "Address:    $ZERONET_FORUM_ADDRESS": "",
+    "Public key: $ZERONET_FORUM_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_FORUM_ADDRESS": "",
+    "Forum address:     $ZERONET_FORUM_ADDRESS": "",
+    "Forum private key: $ZERONET_FORUM_PRIVATE_KEY": "",
+    "ZeroNet Forum address": "",
+    "ZeroNet Forum address: $ZERONET_FORUM_ADDRESS": "",
+    "ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY": "",
+    "OneRNG package could not be downloaded": "",
+    "OneRNG package: $ONERNG_PACKAGE": "",
+    "Hash does not match. This could indicate that the package has been tampered with.": "",
+    "OneRNG expected package hash: $ONERNG_PACKAGE_HASH": "",
+    "OneRNG actual hash: $hash": "",
+    "OneRNG Device": "",
+    "Please plug in the OneRNG device": "",
+    "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+    "Added onion site for ${onion_service_name}": "",
+    "# Tripwire reports which have no violations don't need to be logged": "",
+    "ERROR: Dovecot does not appear to have installed. $CHECK_MESSAGE": "",
+    "Unknown subkey usage: $GPG_KEY_USAGE": "",
+    "Public key:  $MY_GPG_PUBLIC_KEY": "",
+    "Private key: $MY_GPG_PRIVATE_KEY": "",
+    "GPG public key file $MY_GPG_PUBLIC_KEY was not found": "",
+    "GPG private key file $MY_GPG_PRIVATE_KEY was not found": "",
+    "The GPG key for $MY_EMAIL_ADDRESS could not be imported": "",
+    "A GPG key for $MY_EMAIL_ADDRESS could not be created": "",
+    "Change your GPG password": "",
+    "It's very important to add a password to your GPG key so that": "",
+    "if anyone does get access to your email they still won't be able": "",
+    "Publish your GPG public key": "",
+    "If you have imported legacy email which is not encrypted": "",
+    "ERROR: Mutt does not appear to have installed. $CHECK_MESSAGE": "",
+    "Creating the $PUBLIC_MAILING_LIST mailing list": "",
+    "$PUBLIC_MAILING_LIST mailing list": "",
+    "To subscribe to the $PUBLIC_MAILING_LIST mailing list send a": "",
+    "cleartext email to $PUBLIC_MAILING_LIST+subscribe@$DEFAULT_DOMAIN_NAME": "",
+    "\n  *** ${PROJECT_NAME} mailbox installation is complete ***\n\n      Now on your internet router forward ports\n     25, 587, 465, 993 and 2222 to the ${PROJECT_NAME}\n": "",
+    "Email import directory $IMPORT_MAILDIR not found": "",
+    "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": "",
+    "Your MariaDB password is: $MARIADB_PASSWORD": "",
+    "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": "",
+    "Unable to clone repo $GOPATH/src/github.com/gogits/gogs": "",
+    "Gogs admin user password": "",
+    "Database password: $MARIADB_PASSWORD": "",
+    "Gogs admin user password: $GIT_ADMIN_PASSWORD": "",
+    "Gogs admin user email: $MY_EMAIL_ADDRESS": "",
+    "Note that there's a usability/security trade-off made here.": "",
+    "In order to allow git clone via http we don't redirect everything": "",
+    "should change /etc/nginx/sites-available/$GIT_DOMAIN_NAME to redirect everything over https.": "",
+    "Your Tox node public key is": "",
+    "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+    "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+    "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+    "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+    "Your XMPP password is: $XMPP_PASSWORD": "",
+    "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": "",
+    "IRC onion domain": "",
+    "IRC Server": "",
+    "Wiki password": "",
+    "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+    "Wiki username: $MY_USERNAME": "",
+    "Wiki password: $WIKI_ADMIN_PASSWORD": "",
+    "Your blog username: $MY_USERNAME": "",
+    "Your blog password is: $FULLBLOG_ADMIN_PASSWORD": "",
+    "Log into your blog at https://$FULLBLOG_DOMAIN_NAME/login": "",
+    "Blog onion domain: ${FULLBLOG_ONION_HOSTNAME}": "",
+    "Log into your blog at https://${FULLBLOG_ONION_HOSTNAME}/login": "",
+    "RSS Reader": "",
+    "RSS reader domain: ${RSS_READER_DOMAIN_NAME}": "",
+    "RSS reader onion domain: ${RSS_READER_ONION_HOSTNAME}": "",
+    "RSS reader admin username: admin": "",
+    "RSS reader admin password: ${RSS_READER_ADMIN_PASSWORD}": "",
+    "GNU Social": "",
+    "Microblog administrator": "",
+    "Microblog administrator nickname: $MY_USERNAME": "",
+    "Microblog administrator password: $MICROBLOG_ADMIN_PASSWORD": "",
+    "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
+    "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
+    "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
+    "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
+    "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
+    "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
+    "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": "",
+    "VoIP onion domain": "",
+    "VoIP Server": "",
+    "VoIP onion domain:$VOIP_ONION_HOSTNAME": "",
+    "VoIP server password: $VOIP_SERVER_PASSWORD": "",
+    "SIP onion domain": "",
+    "SIP Server": "",
+    "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+    "SIP server username: $MY_USERNAME": "",
+    "SIP server extension: 201": "",
+    "SIP server password: $SIP_SERVER_PASSWORD": "",
+    "\n    *** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n    Now forward these ports from your internet router\n\n    HTTP     80\n    HTTPS    443\n    SSH      2222\n    DLNA     1900\n    DLNA     8200\n    XMPP     5222-5223\n    XMPP     5269\n    XMPP     5280-5281\n    IRC      6697\n    Git      9418\n    Email    25\n    Email    587\n    Email    465\n    Email    993\n    VoIP     64738\n    VoIP     5060\n    Tox      33445\n    ": "",
+    "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone.mo b/locale/fr_BE/freedombone.mo
new file mode 100644
index 0000000000000000000000000000000000000000..ed7eb24e96b462f0d559723d087295d96d7e3df3
Binary files /dev/null and b/locale/fr_BE/freedombone.mo differ
diff --git a/locale/fr_CH/freedombone-addcert.json b/locale/fr_CH/freedombone-addcert.json
new file mode 100644
index 0000000000000000000000000000000000000000..1b3ca325a5c50c07a77b5ab57c41a10a3ee8aea3
--- /dev/null
+++ b/locale/fr_CH/freedombone-addcert.json
@@ -0,0 +1,7 @@
+{
+    "${PROJECT_NAME}-addcert -h [hostname] -c [country code] -a [area] -l [location]": "",
+    "$0: openssl is not installed, exiting": "",
+    "Failed to install letsencrypt for domain $LETSENCRYPT_HOSTNAME": "",
+    "Certificate for $LETSENCRYPT_HOSTNAME could not be pinned": "",
+    "Certificate for $CERTFILE could not be pinned": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-addcert.mo b/locale/fr_CH/freedombone-addcert.mo
new file mode 100644
index 0000000000000000000000000000000000000000..6fe13ebd7534e3508f98a8d837c4573d66035fae
Binary files /dev/null and b/locale/fr_CH/freedombone-addcert.mo differ
diff --git a/locale/fr_CH/freedombone-addemail.json b/locale/fr_CH/freedombone-addemail.json
new file mode 100644
index 0000000000000000000000000000000000000000..8787e7dd7aeeb1ed257a4861bbdeedb0f522b1d7
--- /dev/null
+++ b/locale/fr_CH/freedombone-addemail.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-addemail -u [username] -e [email address] -s [subject text] -g [group name] --public [yes|no]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-addemail.mo b/locale/fr_CH/freedombone-addemail.mo
new file mode 100644
index 0000000000000000000000000000000000000000..5805ba4f8e30ec95581c5ef5d217dcc1c2cdcc5f
Binary files /dev/null and b/locale/fr_CH/freedombone-addemail.mo differ
diff --git a/locale/fr_CH/freedombone-addlist.json b/locale/fr_CH/freedombone-addlist.json
new file mode 100644
index 0000000000000000000000000000000000000000..6c145e7030225c4e83588b2061aae840d5480d28
--- /dev/null
+++ b/locale/fr_CH/freedombone-addlist.json
@@ -0,0 +1,4 @@
+{
+    "${PROJECT_NAME}-addlist -u [username] -l [mailing list name] -s [subject tag] -e [list email address] --public [yes|no]": "",
+    "Mailing list $MAILINGLIST was already added": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-addlist.mo b/locale/fr_CH/freedombone-addlist.mo
new file mode 100644
index 0000000000000000000000000000000000000000..6d8b7cec78f69a4c600bbd45a2caaaa4a32f3dc3
Binary files /dev/null and b/locale/fr_CH/freedombone-addlist.mo differ
diff --git a/locale/fr_CH/freedombone-addsipuser.json b/locale/fr_CH/freedombone-addsipuser.json
new file mode 100644
index 0000000000000000000000000000000000000000..09080aa6996b84e1876613044e8c2e2a1fe0dec8
--- /dev/null
+++ b/locale/fr_CH/freedombone-addsipuser.json
@@ -0,0 +1,7 @@
+{
+    "${PROJECT_NAME}-addsipuser -u [username] -e [extension] -p [password]": "",
+    "SIP configuration file not found": "",
+    "User $MY_USERNAME not found": "",
+    "SIP user $MY_USERNAME amended": "",
+    "SIP user $MY_USERNAME added": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-addsipuser.mo b/locale/fr_CH/freedombone-addsipuser.mo
new file mode 100644
index 0000000000000000000000000000000000000000..dbf5a814195963e55d32d4db1dd6ad3c19c8a481
Binary files /dev/null and b/locale/fr_CH/freedombone-addsipuser.mo differ
diff --git a/locale/fr_CH/freedombone-adduser.json b/locale/fr_CH/freedombone-adduser.json
new file mode 100644
index 0000000000000000000000000000000000000000..179e11c3ae91886399d462ee0a02fee6806526fb
--- /dev/null
+++ b/locale/fr_CH/freedombone-adduser.json
@@ -0,0 +1,15 @@
+{
+    "The user $MY_USERNAME already exists": "",
+    "$COMPLETION_FILE not found": "",
+    "It's very important to add a password to your GPG key so that": "",
+    "if anyone does get access to your email they still won't be able": "",
+    "Adding an XMPP account for $MY_USERNAME": "",
+    "XMPP account not created": "",
+    "Adding XMPP client setup": "",
+    "Unable to find GNU Social installation at /var/www/$MICROBLOG_DOMAIN_NAME/htdocs": "",
+    "New user $MY_USERNAME was created": "",
+    "Their SIP phone extension is $SIP_EXTENSION": "",
+    "Their login password is $NEW_USER_PASSWORD": "",
+    "They can download their GPG keys with:": "",
+    "They should also run ${PROJECT_NAME}-client on their system to ensure": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-adduser.mo b/locale/fr_CH/freedombone-adduser.mo
new file mode 100644
index 0000000000000000000000000000000000000000..21d3660eb89a34c03aeac3e6505f8ab1ea9dea40
Binary files /dev/null and b/locale/fr_CH/freedombone-adduser.mo differ
diff --git a/locale/fr_CH/freedombone-addxmpp.json b/locale/fr_CH/freedombone-addxmpp.json
new file mode 100644
index 0000000000000000000000000000000000000000..505bc43ebf5e768e22d1495a19248082355e8ab6
--- /dev/null
+++ b/locale/fr_CH/freedombone-addxmpp.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-addxmpp -e [email address] -p [password]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-addxmpp.mo b/locale/fr_CH/freedombone-addxmpp.mo
new file mode 100644
index 0000000000000000000000000000000000000000..1e0f654ef8f4328ba0337703770bf2e86d61e56f
Binary files /dev/null and b/locale/fr_CH/freedombone-addxmpp.mo differ
diff --git a/locale/fr_CH/freedombone-backup-local.json b/locale/fr_CH/freedombone-backup-local.json
new file mode 100644
index 0000000000000000000000000000000000000000..82a2f7b72b210e84ee1f6c4edf58f1b9f8e26476
--- /dev/null
+++ b/locale/fr_CH/freedombone-backup-local.json
@@ -0,0 +1,35 @@
+{
+    "Please attach a USB drive": "",
+    "There was a problem mounting the USB drive to $USB_MOUNT": "",
+    "Unable to unmount the drive. This means that the backup did not work": "",
+    "Unmount encrypted USB": "",
+    "Backup to USB drive is complete. You can now unplug it.": "",
+    "No MariaDB password was given": "",
+    "Obtaining ${1} database backup": "",
+    "${1} database could not be saved": "",
+    "WARNING: directory does not exist: ${1}": "",
+    "Backup key could not be found": "",
+    "There was a problem making the directory $USB_MOUNT/backup.": "",
+    "Less than 5% of space remaining on backup drive": "",
+    "Backing up gpg keys for $USERNAME": "",
+    "Backing up personal settings for $USERNAME": "",
+    "Backing up ssh keys for $USERNAME": "",
+    "Backing up fin files for $USERNAME": "",
+    "Backing up syncthing files for $USERNAME": "",
+    "Backing up config files for $USERNAME": "",
+    "Backing up local files for $USERNAME": "",
+    "Backing up Mutt settings for $USERNAME": "",
+    "Creating an email archive for $USERNAME": "",
+    "Backing up emails for $USERNAME": "",
+    "Backing up spamassassin settings for $USERNAME": "",
+    "Backing up procmail settings for $USERNAME": "",
+    "Backing up $source_directory to $dest_directory": "",
+    "Backing up ${PROJECT_NAME} configuration files": "",
+    "Backing up README": "",
+    "Backing up VoIP settings": "",
+    "Unable to backup mysql settings": "",
+    "Backing up some additional directories": "",
+    "WARNING: The backup directory $destination_dir is already used.": "",
+    "Choose a different destination name for backing up $backup_dir": "",
+    "WARNING: Directory $backup_dir does not exist": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-backup-local.mo b/locale/fr_CH/freedombone-backup-local.mo
new file mode 100644
index 0000000000000000000000000000000000000000..70ecea6a15d2ecc2af3f984926a5a3554ef31406
Binary files /dev/null and b/locale/fr_CH/freedombone-backup-local.mo differ
diff --git a/locale/fr_CH/freedombone-backup-remote.json b/locale/fr_CH/freedombone-backup-remote.json
new file mode 100644
index 0000000000000000000000000000000000000000..854e5216cc135cf78008222c7024ff4037f0c4dc
--- /dev/null
+++ b/locale/fr_CH/freedombone-backup-remote.json
@@ -0,0 +1,51 @@
+{
+    "Creating backup key": "",
+    "Backup key could not be found": "",
+    "No MariaDB password was given": "",
+    "${1} database could not be saved": "",
+    "Unable to export ${1} database": "",
+    "${PROJECT_NAME} backup to friends": "",
+    "Backing up ${PROJECT_NAME} configuration files": "",
+    "Backing up personal settings for $USERNAME": "",
+    "Backing up gpg keys for $USERNAME": "",
+    "Backing up ssh keys for $USERNAME": "",
+    "Backing up syncthing files for $USERNAME": "",
+    "Backing up config files for $USERNAME": "",
+    "Backing up fin files for $USERNAME": "",
+    "Backing up local files for $USERNAME": "",
+    "Backing up Mutt settings for $USERNAME": "",
+    "Backing up procmail settings for $USERNAME": "",
+    "Backing up spamassassin settings for $USERNAME": "",
+    "Creating an email archive": "",
+    "Backing up emails for $USERNAME": "",
+    "Backing up Lets Encrypt settings": "",
+    "Backing up Tor settings": "",
+    "Backing up RSS reader installation": "",
+    "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+    "Backing up GNU social installation": "",
+    "GNU Social domain specified but not found in /var/www/${MICROBLOG_DOMAIN_NAME}": "",
+    "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": "",
+    "Backing up syncthing configuration": "",
+    "Backing up syncthing shared files": "",
+    "Backing up Mediagoblin": "",
+    "Obtaining Gogs settings backup": "",
+    "Obtaining Gogs repos backup": "",
+    "Obtaining Gogs authorized_keys backup": "",
+    "Backing up wiki": "",
+    "Backing up blog": "",
+    "Blog domain specified but not found in /var/www/${FULLBLOG_DOMAIN_NAME}": "",
+    "Backing up certificates": "",
+    "Backing up the public mailing list": "",
+    "Backing up the XMPP settings": "",
+    "Backing up web settings": "",
+    "Backing up README": "",
+    "Backing up IPFS": "",
+    "Backing up DLNA cache": "",
+    "Backing up VoIP settings": "",
+    "Unable to backup MariaDB settings": "",
+    "Unable to export database settings": "",
+    "Backing up some additional directories": "",
+    "WARNING: The backup directory $destination_dir is already used.": "",
+    "Choose a different destination name for backing up $backup_dir": "",
+    "WARNING: Directory $backup_dir does not exist": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-backup-remote.mo b/locale/fr_CH/freedombone-backup-remote.mo
new file mode 100644
index 0000000000000000000000000000000000000000..156580ac8e941aa4e86515e8f1914f8ab7508c7f
Binary files /dev/null and b/locale/fr_CH/freedombone-backup-remote.mo differ
diff --git a/locale/fr_CH/freedombone-blog.json b/locale/fr_CH/freedombone-blog.json
new file mode 100644
index 0000000000000000000000000000000000000000..5bbec508dfa6661a91fe7050b84ad44f7b0e56cc
--- /dev/null
+++ b/locale/fr_CH/freedombone-blog.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-blog -h [hostname] -a [avatar image file]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-blog.mo b/locale/fr_CH/freedombone-blog.mo
new file mode 100644
index 0000000000000000000000000000000000000000..ea173619b281662e8ad9ffd4bb44d17e582727cc
Binary files /dev/null and b/locale/fr_CH/freedombone-blog.mo differ
diff --git a/locale/fr_CH/freedombone-client.json b/locale/fr_CH/freedombone-client.json
new file mode 100644
index 0000000000000000000000000000000000000000..adad53c5781b4763115215168f07d3f59d3e09da
--- /dev/null
+++ b/locale/fr_CH/freedombone-client.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-client": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-client.mo b/locale/fr_CH/freedombone-client.mo
new file mode 100644
index 0000000000000000000000000000000000000000..c904d9287ec4b8b171e96d1aec3b04c1d4a290cf
Binary files /dev/null and b/locale/fr_CH/freedombone-client.mo differ
diff --git a/locale/fr_CH/freedombone-clientcert.json b/locale/fr_CH/freedombone-clientcert.json
new file mode 100644
index 0000000000000000000000000000000000000000..3ebf699f6e2cd47b6aea7540d9f6e3ed23725735
--- /dev/null
+++ b/locale/fr_CH/freedombone-clientcert.json
@@ -0,0 +1,4 @@
+{
+    "${PROJECT_NAME}-clientcert -u [username]": "",
+    "User $USERNAME not found": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-clientcert.mo b/locale/fr_CH/freedombone-clientcert.mo
new file mode 100644
index 0000000000000000000000000000000000000000..ff8c876189c4653f50ef4e138a0a61a33d2b1129
Binary files /dev/null and b/locale/fr_CH/freedombone-clientcert.mo differ
diff --git a/locale/fr_CH/freedombone-config.json b/locale/fr_CH/freedombone-config.json
new file mode 100644
index 0000000000000000000000000000000000000000..40d7dee91e38fecaa17993b9326ed1b5c6290934
--- /dev/null
+++ b/locale/fr_CH/freedombone-config.json
@@ -0,0 +1,228 @@
+{
+    "<h1>Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog</h1><p>Another $PROJECT_NAME site</p>": "",
+    "${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+    "Please enter the FreeDNS code for this domain.\\n\\nThe code can be found by going to https://freedns.afraid.org, selecting 'Dynamic DNS' and then opening 'Wget example'. The code will consist of letters and numbers and be between the ? and = characters.": "",
+    "Invalid FreeDNS Code": "",
+    "Encryption keys": "",
+    "There was a problem mounting the USB drive to $GPG_USB_MOUNT": "",
+    "The directory $GPG_USB_MOUNT/.gnupg or $GPG_USB_MOUNT/.gnupg_fragments was not found": "",
+    "GPG Keyring loaded to $HOME_DIR": "",
+    "ssh keys imported": "",
+    "Now remove the USB drive. Insert the next drive containing a key fragment, or select Ok to finish": "",
+    "Freedombone Configuration": "",
+    "GPG/PGP keys for your system:": "",
+    "Generate new keys (new user)": "",
+    "Import keys from USB drive/s": "",
+    "Retrieve keys from friends servers": "",
+    "Freedombone Control Panel": "",
+    "Main Repository (Mirrors)": "",
+    "If you don't know what this means then just select Ok.\\n\\nIf you don't wish to use the default repositories they can be obtained from mirrored repos on another ${PROJECT_NAME} system.\\n\\nThe repositories are for applications which are not yet packaged for Debian.": "",
+    "URL:": "",
+    "SSH Port:": "",
+    "Password:": "",
+    "Main Repository": "",
+    "Main repository set to $FRIENDS_MIRRORS_SERVER": "",
+    "Select your language:": "",
+    "Afrikaans": "",
+    "Albanian": "",
+    "Arabic": "",
+    "Basque": "",
+    "Belarusian": "",
+    "Bosnian": "",
+    "Bulgarian": "",
+    "Catalan": "",
+    "Croatian": "",
+    "Chinese (Simplified)": "",
+    "Chinese (Traditional)": "",
+    "Czech": "",
+    "Danish": "",
+    "Dutch": "",
+    "English": "",
+    "English (US)": "",
+    "Estonian": "",
+    "Farsi": "",
+    "Filipino": "",
+    "Finnish": "",
+    "French": "",
+    "French (Canada)": "",
+    "Gaelic": "",
+    "Gallego": "",
+    "Georgian": "",
+    "German": "",
+    "German (Personal)": "",
+    "Greek": "",
+    "Gujarati": "",
+    "Hebrew": "",
+    "Hindi": "",
+    "Hungarian": "",
+    "Icelandic": "",
+    "Indonesian": "",
+    "Italian": "",
+    "Japanese": "",
+    "Kannada": "",
+    "Khmer": "",
+    "Korean": "",
+    "Lao": "",
+    "Lithuanian": "",
+    "Latvian": "",
+    "Malayalam": "",
+    "Malaysian": "",
+    "Maori (Ngai Tahu)": "",
+    "Maori (Waikoto Uni)": "",
+    "Mongolian": "",
+    "Norwegian": "",
+    "Norwegian (Primary)": "",
+    "Nynorsk": "",
+    "Polish": "",
+    "Portuguese": "",
+    "Portuguese (Brazil)": "",
+    "Romanian": "",
+    "Russian": "",
+    "Samoan": "",
+    "Serbian": "",
+    "Slovak": "",
+    "Slovenian": "",
+    "Somali": "",
+    "Spanish (International)": "",
+    "Swedish": "",
+    "Tagalog": "",
+    "Tamil": "",
+    "Thai": "",
+    "Turkish": "",
+    "Ukrainian": "",
+    "Vietnamese": "",
+    "Select User": "",
+    "Select one of the following:": "",
+    "Welcome to the Freedombone interactive installer. Communications freedom is only a short time away.\\n\\nEnsure that you have your domain and dynamic DNS settings ready.\\n\\nFor more information please visit $FREEDOMBONE_WEBSITE.": "",
+    "Welcome to the Freedombone interactive installer. Communications freedom is only a short time away.\\n\\nWeb sites created will only be viewable within a Tor browser.\\n\\nFor more information please visit $FREEDOMBONE_WEBSITE.": "",
+    "Freedombone": "",
+    "Type of Installation:": "",
+    "Full": "",
+    "Writer": "",
+    "Cloud": "",
+    "Chat": "",
+    "Mailbox": "",
+    "Non-Mailbox": "",
+    "Social": "",
+    "Media": "",
+    "Developer": "",
+    "Mesh (router)": "",
+    "Mesh (user device)": "",
+    "Wireless Mesh ESSID\\n\\nIf you press enter the default will be '$WIFI_SSID'": "",
+    "Give your mesh peer a name": "",
+    "Wifi Channel (spaced to be non-overlapping):": "",
+    "Username": "",
+    "Set your username for the system\\n\\nYour username should not contain any spaces": "",
+    "Don't use the default user account": "",
+    "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
+    "Install Target": "",
+    "\\nAre you installing onto a Beaglebone Black?": "",
+    "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
+    "Social Key Management": "",
+    "Type of Random Number Generator:": "",
+    "OneRNG Device": "",
+    "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+    "Where to download Debian packages from:": "",
+    "Australia": "",
+    "Austria": "",
+    "Belarus": "",
+    "Belgium": "",
+    "Bosnia and Herzegovina": "",
+    "Brazil": "",
+    "Bulgaria": "",
+    "Canada": "",
+    "Chile": "",
+    "China": "",
+    "Croatia": "",
+    "Czech Republic": "",
+    "Denmark": "",
+    "El Salvador": "",
+    "Estonia": "",
+    "Finland": "",
+    "France 1": "",
+    "France 2": "",
+    "Germany 1": "",
+    "Germany 2": "",
+    "Greece": "",
+    "Hungary": "",
+    "Iceland": "",
+    "Iran": "",
+    "Ireland": "",
+    "Italy": "",
+    "Japan": "",
+    "Korea": "",
+    "Lithuania": "",
+    "Mexico": "",
+    "Netherlands": "",
+    "New Caledonia": "",
+    "New Zealand": "",
+    "Norway": "",
+    "Poland": "",
+    "Portugal": "",
+    "Romania": "",
+    "Russia": "",
+    "Slovakia": "",
+    "Slovenia": "",
+    "Spain": "",
+    "Sweden": "",
+    "Switzerland": "",
+    "Taiwan": "",
+    "Thailand": "",
+    "Turkey": "",
+    "Ukraine": "",
+    "United Kingdom": "",
+    "United States": "",
+    "Pick a domain name service (DNS):": "",
+    "Digital Courage": "",
+    "German Privacy Foundation 1": "",
+    "German Privacy Foundation 2": "",
+    "Chaos Computer Club": "",
+    "ClaraNet": "",
+    "OpenNIC 1": "",
+    "OpenNIC 2": "",
+    "OpenNIC 3": "",
+    "OpenNIC 4": "",
+    "OpenNIC 5": "",
+    "OpenNIC 6": "",
+    "OpenNIC 7": "",
+    "PowerNS": "",
+    "ValiDOM": "",
+    "Freie Unzensierte": "",
+    "Google": "",
+    "Choose Dynamic DNS provider:": "",
+    "Dynamic DNS provider username": "",
+    "Dynamic DNS provider password": "",
+    "Password quality check": "",
+    "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
+    "Static local IP address": "",
+    "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
+    "Local Network Configuration": "",
+    "\\nPlease enter the IP addresses:": "",
+    "This system:": "",
+    "Internet router:": "",
+    "Wiki Configuration": "",
+    "\\nPlease enter your wiki details:": "",
+    "Title:": "",
+    "Domain:": "",
+    "Code:": "",
+    "Domain name validation": "",
+    "Blog Configuration": "",
+    "\\nPlease enter your blog details:": "",
+    "Mediagoblin Configuration": "",
+    "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+    "Hubzilla Configuration": "",
+    "\\nPlease enter your Hubzilla details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+    "\\nPlease enter your Hubzilla details\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+    "Microblog Configuration": "",
+    "\\nPlease enter your Microblog details. Welcome message and background image URL can be left blank.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+    "Welcome Message:": "",
+    "Background image URL:": "",
+    "Developer Configuration": "",
+    "\\nPlease enter your Git hosting site details.\\nIf You don't need developer tools then just select Ok": "",
+    "Your main domain name": "",
+    "\\nWhich domain name should your email/XMPP/IRC/VoIP be associated with?": "",
+    "Which domain name should your email/XMPP/IRC/VoIP be associated with?": "",
+    "Your email address": "",
+    "Configuration filename:": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-config.mo b/locale/fr_CH/freedombone-config.mo
new file mode 100644
index 0000000000000000000000000000000000000000..d889105e8b1c7618259d216ddb15d7bb3e38e93b
Binary files /dev/null and b/locale/fr_CH/freedombone-config.mo differ
diff --git a/locale/fr_CH/freedombone-controlpanel-user.json b/locale/fr_CH/freedombone-controlpanel-user.json
new file mode 100644
index 0000000000000000000000000000000000000000..cc97ed07f162fa0d5f65a83add40a3177c56966d
--- /dev/null
+++ b/locale/fr_CH/freedombone-controlpanel-user.json
@@ -0,0 +1,110 @@
+{
+    "Press any key to continue...": "",
+    "Exit back to user mainenance": "",
+    "Freedombone User Control Panel": "",
+    "Remove yourself from a mailing list": "",
+    "Select one of the following:": "",
+    "Remove yourself from mailing list": "",
+    "You have been removed from ${remove_list_name}": "",
+    "Subscribe to a mailing list": "",
+    "You can either enter a subject or an email address\\n": "",
+    "List folder name:": "",
+    "Name between [] on subject line:": "",
+    "List email address:": "",
+    "Public:": "",
+    "yes": "",
+    "Add mailing list": "",
+    "No mailing list name was given": "",
+    "No mailing list subject or address was given": "",
+    "Unrecognised email address": "",
+    "$LIST_NAME list was added": "",
+    "Create an email rule": "",
+    "When email arrives from address:": "",
+    "Move to folder:": "",
+    "no": "",
+    "No email address was given": "",
+    "No folder name was given": "",
+    "Email rule for $RULE_EMAIL was added": "",
+    "When email arrives with subject containing:": "",
+    "No subject text was given": "",
+    "Email rule for subject '$RULE_SUBJECT' was added": "",
+    "Block or unblock emails from a given address": "",
+    "Block it:": "",
+    "Block an email": "",
+    "Unblock an email": "",
+    "Block or unblock emails with text in the subject line": "",
+    "When email arrives with subject text:": "",
+    "No subject was given": "",
+    "Email with subject $BLOCK_SUBJECT is now blocked": "",
+    "Email with subject $BLOCK_SUBJECT is now unblocked": "",
+    "Your PGP/GPG Key": "",
+    "Email Address: $MY_EMAIL_ADDRESS\\n\\nKey ID: $GPG_ID\\n\\nFingerprint: $GPG_FINGERPRINT\\n\\nCreated: $GPG_DATE": "",
+    "Publish your PGP/GPG key": "",
+    "Your key has now been published": "",
+    "Add someone's PGP/GPG key": "",
+    "Enter their email address below": "",
+    "This doesn't look like an email address": "",
+    "Remove someone's PGP/GPG key": "",
+    "It's not a good idea to remove your own encryption key": "",
+    "Add an ssh key for logging in": "",
+    "This will allow you to log into ${PROJECT_NAME} if you have an ssh key on your system, and provides much stronger security than simply using a login password.\\n\\nWARNING: If you make any mistakes here then you may not be able to log in and will need to get the administrator to clear your ssh authorized_keys file.": "",
+    "New ssh key added": "",
+    "Your ssh key has now been added": "",
+    "ssh key already added": "",
+    "That ssh key has already been added": "",
+    "Unrecognised ssh public key": "",
+    "This doesn't look like an ssh key": "",
+    "Remove an ssh key for logging in": "",
+    "Enter the ssh public key which is to be removed. This can be just the address at the end.\\n\\nWARNING: If you make any mistakes here then you may not be able to log in and will need to get the administrator to clear your ssh authorized_keys file.": "",
+    "Remove an ssh public key": "",
+    "The ssh key has been removed": "",
+    "Freedombone Control Panel": "",
+    "SMTP Proxy for $USER": "",
+    "You may need to proxy outgoing email via your ISP's mail server. If so enter the details below.": "",
+    "Enable proxy:": "",
+    "Protocol (smtp/smtps):": "",
+    "ISP mail server:": "",
+    "Port:": "",
+    "Username:": "",
+    "Password:": "",
+    "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+    "Device ID for ${PROJECT_NAME}": "",
+    "In a desktop terminal press shift and select the ID below,\\nthen right click and copy.\\n\\nWithin Connectbot select Menu/Copy and then highlight the ID below\\n\\n$SYNCTHING_ID": "",
+    "Add a Syncthing device ID": "",
+    "Paste the device ID for your laptop/desktop/netbook/phone/tablet below": "",
+    "Device ID:": "",
+    "Description (optional):": "",
+    "That doesn't look like a device ID": "",
+    "That ID has already been added": "",
+    "The ID was added": "",
+    "Remove a Syncthing device ID": "",
+    "Paste the device ID which is to be removed below": "",
+    "That ID wasn't registered anyway": "",
+    "The ID was removed": "",
+    "Your Encryption Keys": "",
+    "Choose an operation:": "",
+    "Show your PGP/GPG key": "",
+    "Publish your PGP/GPG key so that others can find it": "",
+    "Back to main menu": "",
+    "Change Email Filtering Rules": "",
+    "Add yourself to a mailing list": "",
+    "Add an email rule for an address": "",
+    "Add an email rule for a subject": "",
+    "Block or unblock an email address": "",
+    "Block or unblock email with subject text": "",
+    "File Synchronization": "",
+    "Show device ID for ${PROJECT_NAME}": "",
+    "Add an ID for another machine or device": "",
+    "Remove an ID for another machine or device": "",
+    "Manually edit device IDs": "",
+    "User Control Panel": "",
+    "Use Email": "",
+    "Use Tox Chat": "",
+    "Use XMPP Chat": "",
+    "Use IRC": "",
+    "Browse the Web": "",
+    "Set an outgoing email proxy": "",
+    "Administrator controls": "",
+    "Exit to the command line": "",
+    "Log out": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-controlpanel-user.mo b/locale/fr_CH/freedombone-controlpanel-user.mo
new file mode 100644
index 0000000000000000000000000000000000000000..b0f9b068da574cfb1b25746f611beee2d0d563ee
Binary files /dev/null and b/locale/fr_CH/freedombone-controlpanel-user.mo differ
diff --git a/locale/fr_CH/freedombone-controlpanel.json b/locale/fr_CH/freedombone-controlpanel.json
new file mode 100644
index 0000000000000000000000000000000000000000..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3
--- /dev/null
+++ b/locale/fr_CH/freedombone-controlpanel.json
@@ -0,0 +1,229 @@
+{
+    "Press any key to continue...": "",
+    "Check for updates": "",
+    "Upgrade script was not found": "",
+    "Freedombone Control Panel": "",
+    "Main Repository (Mirrors)": "",
+    "If you do not wish to use the default repositories they can be obtained from mirrors on another ${PROJECT_NAME} server.": "",
+    "URL:": "",
+    "SSH Port:": "",
+    "Password:": "",
+    "Main Repository": "",
+    "Main repository set to $FRIENDS_MIRRORS_SERVER": "",
+    "Add new user": "",
+    "Username:": "",
+    "ssh public key (optional):": "",
+    "New username": "",
+    "No username was given": "",
+    "Invalid username": "",
+    "The username should not contain any spaces": "",
+    "ssh public key": "",
+    "This does not look like an ssh public key": "",
+    "Select User": "",
+    "Select one of the following:": "",
+    "SMTP Proxy for $ADMIN_USER": "",
+    "You may need to proxy outgoing email via your ISP's mail server. If so enter the details below.": "",
+    "Enable proxy:": "",
+    "Protocol (smtp/smtps):": "",
+    "ISP mail server:": "",
+    "Port:": "",
+    "Administrator user": "",
+    "You can't delete the administrator user": "",
+    "No Administrator user found. Check $COMPLETION_FILE": "",
+    "Username not found": "",
+    "Home directory not found": "",
+    "Change password": "",
+    "New password for user $SELECTED_USERNAME": "",
+    "The password should be ${MINIMUM_PASSWORD_LENGTH} or more characters": "",
+    "Password for $SELECTED_USERNAME was changed": "",
+    "IRC Password": "",
+    "Password for all IRC users, or press Enter for no password": "",
+    "The IRC password was changed": "",
+    "Change blog avatar": "",
+    "Enter a URL for an image. It should be approximately a square image.": "",
+    "Your blog avatar has been changed": "",
+    "Change ssh public key": "",
+    "\\nThis is the administrator user.\\n\\nAre you sure you want to change the ssh public key for the administrator?": "",
+    "Change ssh public key for $SELECTED_USERNAME": "",
+    "Paste the ssh public key below": "",
+    "ssh public key was installed": "",
+    "Exit back to user mainenance": "",
+    "Remove a mailing list for $SELECTED_USERNAME": "",
+    "Remove user from mailing list": "",
+    "${SELECTED_USERNAME} has been removed from ${remove_list_name}": "",
+    "Subscribe $SELECTED_USERNAME to a mailing list": "",
+    "You can either enter a subject or an email address\\n": "",
+    "List folder name:": "",
+    "Name between [] on subject line:": "",
+    "List email address:": "",
+    "Public:": "",
+    "yes": "",
+    "Add mailing list": "",
+    "No mailing list name was given": "",
+    "No mailing list subject or address was given": "",
+    "Unrecognised email address": "",
+    "$LIST_NAME list was added": "",
+    "Email rule for user $SELECTED_USERNAME": "",
+    "When email arrives from address:": "",
+    "Move to folder:": "",
+    "no": "",
+    "Add email rule": "",
+    "No email address was given": "",
+    "No folder name was given": "",
+    "Email rule for $RULE_EMAIL was added": "",
+    "Block/Unblock email going to": "",
+    "Block it:": "",
+    "Block/Unblock an email": "",
+    "Block an email": "",
+    "Unblock an email": "",
+    "When email arrives with subject text:": "",
+    "No subject was given": "",
+    "USB Master Keydrive": "",
+    "Plug in a LUKS encrypted USB drive": "",
+    "USB Fragment Keydrive": "",
+    "Backup data to USB": "",
+    "Restore from USB backup": "",
+    "Choose an application to restore:": "",
+    "Everything": "",
+    "Return to the backup and restore menu": "",
+    "Configuration files": "",
+    "MariaDB settings": "",
+    "Let's Encrypt account": "",
+    "Mutt email client settings": "",
+    "GPG keys": "",
+    "Email processing rules": "",
+    "Spam filtering rules": "",
+    "Administrator's README file": "",
+    "IPFS": "",
+    "SSH keys": "",
+    "User configuration files": "",
+    "User local files": "",
+    "User fin files": "",
+    "SSL/TLS certificates": "",
+    "Personal settings": "",
+    "Mailing List": "",
+    "XMPP chat": "",
+    "GNU Social": "",
+    "Hubzilla": "",
+    "Syncthing": "",
+    "Gogs": "",
+    "Wiki": "",
+    "Blog": "",
+    "CJDNS": "",
+    "Email": "",
+    "DLNA": "",
+    "VoIP": "",
+    "RSS reader": "",
+    "Tox": "",
+    "Mediagoblin": "",
+    "Restore from ${remote_domain_name}": "",
+    "Restore data from USB": "",
+    "Plug in your backup USB drive": "",
+    "Restore data from remote server": "",
+    "Unknown admin user": "",
+    "Restore from remote server": "",
+    "Enter the domain name of the server from which you wish to restore": "",
+    "Remote server domain name": "",
+    "Invalid domain name": "",
+    "\\nDo you want to enable other systems to ping this machine?\\n\\nPing may be useful for diagnostic purposes, but for added security you may not want to enable it.": "",
+    "Enable Ping / ICMP": "",
+    "Logging": "",
+    "\\nDo you want to turn logging on?": "",
+    "Restore GPG key for user": "",
+    "Plug in your USB keydrive": "",
+    "Renew SSL certificate": "",
+    "\\nThis will renew a letsencrypt certificate. Select 'yes' to continue": "",
+    "Hubzilla install directory not found": "",
+    "Hubzilla certificate has been renewed": "",
+    "Hubzilla channel directory server": "",
+    "Hubzilla is not installed on this system": "",
+    "When you click on 'channel directory' this is where Hubzilla will obtain its list from": "",
+    "Invalid domain - include the https://": "",
+    "Domain channel directory server changed to $hubzilla_domain_server": "",
+    "Format a USB drive (LUKS encrypted)": "",
+    "Choose a drive:": "",
+    "sda (Beaglebone Black)": "",
+    "sdb": "",
+    "sdc": "",
+    "sdd": "",
+    "Back to Backup and Restore menu": "",
+    "Format USB drive": "",
+    "\\nPlease confirm that you wish to format drive\\n\\n    ${drive}\\n\\nAll current data on the drive will be lost, and you will be prompted to give a password used to encrypt the drive.\\n\\nDANGER: If you screw up here and format the wrong drive it's your own fault!": "",
+    "Remove backups from a USB drive": "",
+    "\\nPlease confirm that you wish to remove backups from this drive\\n\\n    ${drive}\\n\\nYou will not be able to recover them afterwards.": "",
+    "Power off the system": "",
+    "\\nPlease confirm that you wish to power off the system.\\n\\nWARNING: to power on again you will need to have physical access to the hardware.": "",
+    "Restart the system": "",
+    "\\nPlease confirm that you wish to restart the system.\\n\\nWARNING: If you are using full disk encryption then you will need physical access to the hardware to type in the password": "",
+    "Change the name of this system": "",
+    "New local network name": "",
+    "The name of this system on your local network was changed successfully": "",
+    "Set the TLS date/time source": "",
+    "Enter a domain name to use as a TLS time source.\\n\\nFactors to consider when choosing a source are whether you wish that site to know that your system is 'alive' and also what might happen if an adversary were to try to mess with the date/time from that domain (i.e. how much blowback would there be).": "",
+    "Don't include the 'https'": "",
+    "That doesn't look like a domain name": "",
+    "Set a static local IP address": "",
+    "In order to forward incoming internet traffic to this system most internet routers need to know a static local IP address to send the data to.\\n\\n\nEnter a static local IP address for this system.\\n\\nIt will typically be 192.168.1.x": "",
+    "Set the IP address of your internet router/modem": "",
+    "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
+    "Wifi Settings": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
+    "SSID:": "",
+    "Type (wpa2-psk/none):": "",
+    "Passphrase:": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
+    "Backup and Restore": "",
+    "Choose an operation:": "",
+    "Backup data to USB drive": "",
+    "Restore GPG key from USB keydrive": "",
+    "Restore data from USB drive": "",
+    "Configure remote backups": "",
+    "Restore from remote backup": "",
+    "Backup GPG key to USB (master keydrive)": "",
+    "Backup GPG key to USB (fragment keydrive)": "",
+    "Back to main menu": "",
+    "Email Filtering Rules": "",
+    "Add a user to a mailing list": "",
+    "Remove a user from a mailing list": "",
+    "Add an email rule": "",
+    "Block/Unblock an email address": "",
+    "Block/Unblock email with subject text": "",
+    "Manage Users": "",
+    "Add a user": "",
+    "Delete a user": "",
+    "Change user password": "",
+    "Change user ssh public key": "",
+    "Set channel directory server": "",
+    "Media Menu": "",
+    "Attach a drive containing playable media": "",
+    "Remove a drive containing playable media": "",
+    "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
+    "IRC Menu": "",
+    "No IRC server is installed": "",
+    "Set a password for all IRC users": "",
+    "Show current IRC login password": "",
+    "Control Panel": "",
+    "About this system": "",
+    "Reset Tripwire": "",
+    "Logging on/off": "",
+    "Ping enable/disable": "",
+    "Outgoing Email Proxy": "",
+    "Security Settings": "",
+    "Set the main repository (repo mirrors)": "",
+    "Media menu": "",
+    "IRC menu": "",
+    "Change your blog avatar": "",
+    "Wifi menu": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-controlpanel.mo b/locale/fr_CH/freedombone-controlpanel.mo
new file mode 100644
index 0000000000000000000000000000000000000000..235ea2827c6245c546821abb35456e70b2eeb734
Binary files /dev/null and b/locale/fr_CH/freedombone-controlpanel.mo differ
diff --git a/locale/fr_CH/freedombone-dhparam.json b/locale/fr_CH/freedombone-dhparam.json
new file mode 100644
index 0000000000000000000000000000000000000000..a671f3ea31633c8ce80856aa3b89e8d52368fe8c
--- /dev/null
+++ b/locale/fr_CH/freedombone-dhparam.json
@@ -0,0 +1,7 @@
+{
+    "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
+    "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
+    "$0: openssl is not installed, exiting": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-dhparam.mo b/locale/fr_CH/freedombone-dhparam.mo
new file mode 100644
index 0000000000000000000000000000000000000000..14173a894969f3dc6ccabaa6e8ab3653c873e06f
Binary files /dev/null and b/locale/fr_CH/freedombone-dhparam.mo differ
diff --git a/locale/fr_CH/freedombone-encrypt-mail.json b/locale/fr_CH/freedombone-encrypt-mail.json
new file mode 100644
index 0000000000000000000000000000000000000000..ddf90a17cc047c4967b3fda928eee083828da453
--- /dev/null
+++ b/locale/fr_CH/freedombone-encrypt-mail.json
@@ -0,0 +1,8 @@
+{
+    "A GPG key for $EMAIL_ADDRESS could not be found!": "",
+    "Calling find": "",
+    "Not copying, no differences between /tmp/msg_$USERNAME and $line": "",
+    "Removing Dovecot indexes and uids": "",
+    "No messages found needing GPG encryption, not": "",
+    "removing Dovecot indexes and UIDs.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-encrypt-mail.mo b/locale/fr_CH/freedombone-encrypt-mail.mo
new file mode 100644
index 0000000000000000000000000000000000000000..eecd2edefacf898cbe99f4fa7696bd9c3713b07a
Binary files /dev/null and b/locale/fr_CH/freedombone-encrypt-mail.mo differ
diff --git a/locale/fr_CH/freedombone-format.json b/locale/fr_CH/freedombone-format.json
new file mode 100644
index 0000000000000000000000000000000000000000..18a586735aeced13bdf0e644130b903b2cee3c1f
--- /dev/null
+++ b/locale/fr_CH/freedombone-format.json
@@ -0,0 +1,5 @@
+{
+    "Formatting $USB_DRIVE as LUKS": "",
+    "Failed to format $USB_DRIVE as LUKS": "",
+    "Failed to open LUKS formatted drive $USB_DRIVE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-format.mo b/locale/fr_CH/freedombone-format.mo
new file mode 100644
index 0000000000000000000000000000000000000000..5f5e917f30f3618465629aa4727a9fdce5e2d5b4
Binary files /dev/null and b/locale/fr_CH/freedombone-format.mo differ
diff --git a/locale/fr_CH/freedombone-ignore.json b/locale/fr_CH/freedombone-ignore.json
new file mode 100644
index 0000000000000000000000000000000000000000..1bc3d94c6ff1aab24a8c7519f5e6df79c2d221cb
--- /dev/null
+++ b/locale/fr_CH/freedombone-ignore.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-ignore -u [username] -e [mail address] -t [text in subject line]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-ignore.mo b/locale/fr_CH/freedombone-ignore.mo
new file mode 100644
index 0000000000000000000000000000000000000000..c1c32cba247d79893516d9dc46d83fa7e9c3c8c2
Binary files /dev/null and b/locale/fr_CH/freedombone-ignore.mo differ
diff --git a/locale/fr_CH/freedombone-image-customise.json b/locale/fr_CH/freedombone-image-customise.json
new file mode 100644
index 0000000000000000000000000000000000000000..ea79f843207e3d2e09c084acc539c35fe666ea50
--- /dev/null
+++ b/locale/fr_CH/freedombone-image-customise.json
@@ -0,0 +1,11 @@
+{
+    "info: Adding apt config to call dpkg via eatmydata": "",
+    "error: unable to find /usr/bin/eatmydata after installing the eatmydata package": "",
+    "info: Removing apt config to call dpkg via eatmydata": "",
+    "warning: missing $rootdir$override": "",
+    "\n .---.                  .              .\n |                      |              |\n |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.\n |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'\n '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'\n\n                    Initial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n    sudo su\n    ${PROJECT_NAME} menuconfig\n\n": "",
+    "Using ssh public key:": "",
+    "Install failed. Press x to continue...": "",
+    "warning: creating initial user $username with well known password!": "",
+    "info: killing leftover processes in chroot": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-image-customise.mo b/locale/fr_CH/freedombone-image-customise.mo
new file mode 100644
index 0000000000000000000000000000000000000000..477e4af4de05d7eadf757e1a452b0e31262d14b9
Binary files /dev/null and b/locale/fr_CH/freedombone-image-customise.mo differ
diff --git a/locale/fr_CH/freedombone-image-hardware-setup.json b/locale/fr_CH/freedombone-image-hardware-setup.json
new file mode 100644
index 0000000000000000000000000000000000000000..4b8671a7b5a68eeb9ccd5f6547cdb4e8cca4ee5d
--- /dev/null
+++ b/locale/fr_CH/freedombone-image-hardware-setup.json
@@ -0,0 +1,3 @@
+{
+    "Adding a getty on the serial port": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-image-hardware-setup.mo b/locale/fr_CH/freedombone-image-hardware-setup.mo
new file mode 100644
index 0000000000000000000000000000000000000000..570486f3b6f647370cf645bcb925aab9265d404f
Binary files /dev/null and b/locale/fr_CH/freedombone-image-hardware-setup.mo differ
diff --git a/locale/fr_CH/freedombone-image-make.json b/locale/fr_CH/freedombone-image-make.json
new file mode 100644
index 0000000000000000000000000000000000000000..3efb850012846acb0283ad9f5c129786b0440d95
--- /dev/null
+++ b/locale/fr_CH/freedombone-image-make.json
@@ -0,0 +1,4 @@
+{
+    "error: Missing MIRROR and SUITE settings inherited from Makefile.": "",
+    "starting $VMDEBOOTSTRAP": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-image-make.mo b/locale/fr_CH/freedombone-image-make.mo
new file mode 100644
index 0000000000000000000000000000000000000000..80814705beda40ad59cdd4b1bca21bbaff0eee01
Binary files /dev/null and b/locale/fr_CH/freedombone-image-make.mo differ
diff --git a/locale/fr_CH/freedombone-image-mesh.json b/locale/fr_CH/freedombone-image-mesh.json
new file mode 100644
index 0000000000000000000000000000000000000000..d7fd53ef9b92719945012bcb6c5b81f724e6d746
--- /dev/null
+++ b/locale/fr_CH/freedombone-image-mesh.json
@@ -0,0 +1,18 @@
+{
+    "Regenerating ssh host keys": "",
+    "Address:    $ZERONET_BLOG_ADDRESS": "",
+    "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_BLOG_ADDRESS": "",
+    "ZeroNet Blog address:     $ZERONET_BLOG_ADDRESS": "",
+    "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "Address:    $ZERONET_MAIL_ADDRESS": "",
+    "Public key: $ZERONET_MAIL_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_MAIL_ADDRESS": "",
+    "ZeroNet Mail address:     $ZERONET_MAIL_ADDRESS": "",
+    "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY": "",
+    "Address:    $ZERONET_FORUM_ADDRESS": "",
+    "Public key: $ZERONET_FORUM_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_FORUM_ADDRESS": "",
+    "Forum address:     $ZERONET_FORUM_ADDRESS": "",
+    "Forum private key: $ZERONET_FORUM_PRIVATE_KEY": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-image-mesh.mo b/locale/fr_CH/freedombone-image-mesh.mo
new file mode 100644
index 0000000000000000000000000000000000000000..e3d3b8c3cb50a9b06a62e1656622ff16fa808af2
Binary files /dev/null and b/locale/fr_CH/freedombone-image-mesh.mo differ
diff --git a/locale/fr_CH/freedombone-image.json b/locale/fr_CH/freedombone-image.json
new file mode 100644
index 0000000000000000000000000000000000000000..a4fd155c12e7d192a77b2f2a39850c333784c32f
--- /dev/null
+++ b/locale/fr_CH/freedombone-image.json
@@ -0,0 +1,10 @@
+{
+    "Config file $CONFIG_FILENAME not found": "",
+    "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
+    "\nImage was created.\n\nYou will be able to log into it with:\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+    "Username: $USERNAME\nPassword: $PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-image.mo b/locale/fr_CH/freedombone-image.mo
new file mode 100644
index 0000000000000000000000000000000000000000..2c24e59a3a684e53317222c552072e71b3f8808e
Binary files /dev/null and b/locale/fr_CH/freedombone-image.mo differ
diff --git a/locale/fr_CH/freedombone-keydrive.json b/locale/fr_CH/freedombone-keydrive.json
new file mode 100644
index 0000000000000000000000000000000000000000..eb6c94efbf91a0e57cbc02c6be1d013d9945563e
--- /dev/null
+++ b/locale/fr_CH/freedombone-keydrive.json
@@ -0,0 +1,17 @@
+{
+    "${PROJECT_NAME}-keydrive -u [username] -d [device, eg. sdb] --master [yes/no] -n [no of fragments] --format [yes/no]": "",
+    "Home directory for $MY_USERNAME not found. This user may not exist on the system": "",
+    "There was a problem mounting the USB drive to $USB_MOUNT": "",
+    "No .gnupg directory was found for $MY_USERNAME": "",
+    "GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
+    "Unable to copy gpg keyring to $USB_DRIVE": "",
+    "Made directory $FRAGMENTS_DIR": "",
+    "There was a problem making the directory $FRAGMENTS_DIR": "",
+    "A key fragment already exists on the drive for the user $MY_USERNAME": "",
+    "Not enough key fragments available ${no_of_local_shares}": "",
+    "Number of fragments on the drive: ${no_of_usb_shares}": "",
+    "Too many key fragments exist in $FRAGMENTS_DIR": "",
+    "There was a problem copying the key fragment to $USB_DRIVE": "",
+    "Files found: ${no_of_usb_shares}": "",
+    "Key fragment copied to $USB_DRIVE. You may now remove the drive.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-keydrive.mo b/locale/fr_CH/freedombone-keydrive.mo
new file mode 100644
index 0000000000000000000000000000000000000000..32354cb53ee18d0d0f37abb3e769d41b195e539c
Binary files /dev/null and b/locale/fr_CH/freedombone-keydrive.mo differ
diff --git a/locale/fr_CH/freedombone-mesh-install.json b/locale/fr_CH/freedombone-mesh-install.json
new file mode 100644
index 0000000000000000000000000000000000000000..633b692dc158b45186f0162e9df9f535fce9a53a
--- /dev/null
+++ b/locale/fr_CH/freedombone-mesh-install.json
@@ -0,0 +1,7 @@
+{
+    "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": "",
+    "File not found /usr/local/bin/tox-bootstrapd": "",
+    "Account to run Tox's DHT bootstrap daemon": "",
+    "File not found $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.conf": "",
+    "File not found $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.service": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-mesh-install.mo b/locale/fr_CH/freedombone-mesh-install.mo
new file mode 100644
index 0000000000000000000000000000000000000000..806e2cd0f21ad9770c2d04bb80a3b6b81695a99b
Binary files /dev/null and b/locale/fr_CH/freedombone-mesh-install.mo differ
diff --git a/locale/fr_CH/freedombone-mesh.json b/locale/fr_CH/freedombone-mesh.json
new file mode 100644
index 0000000000000000000000000000000000000000..af1b22bbfab00bfd7605524667decad3e9108cf1
--- /dev/null
+++ b/locale/fr_CH/freedombone-mesh.json
@@ -0,0 +1,11 @@
+{
+    "File not found /usr/local/bin/tox-bootstrapd": "",
+    "File not found $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.conf": "",
+    "File not found ~/develop/toxcore/other/bootstrap_daemon/tox-bootstrapd.service": "",
+    "Couldn't install toxid": "",
+    "Select a user on $AVAHI_DOMAIN:": "",
+    "Tox ID for $AVAHI_DOMAIN was not found": "",
+    "    Label:    $AVAHI_DOMAIN": "",
+    "    Address:  $AVAHI_DOMAIN": "",
+    "    Username: $USER": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-mesh.mo b/locale/fr_CH/freedombone-mesh.mo
new file mode 100644
index 0000000000000000000000000000000000000000..2d3c80aeb4af439bab90d0b769c397be022d3b8a
Binary files /dev/null and b/locale/fr_CH/freedombone-mesh.mo differ
diff --git a/locale/fr_CH/freedombone-meshweb.json b/locale/fr_CH/freedombone-meshweb.json
new file mode 100644
index 0000000000000000000000000000000000000000..166d9b1f873ba073a28337d0e71f19e3a5b75051
--- /dev/null
+++ b/locale/fr_CH/freedombone-meshweb.json
@@ -0,0 +1,27 @@
+{
+    "Blogging on the Mesh": "",
+    "A decentralized discussion group": "",
+    "Mail for the Mesh": "",
+    "IPFS could not be initialised": "",
+    "${MY_USERNAME}'s Blog": "",
+    "Address:    $ZERONET_BLOG_ADDRESS": "",
+    "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "Unable to find site directory: $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS": "",
+    "Blog address:     $ZERONET_BLOG_ADDRESS": "",
+    "Blog private key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "ZeroNet Blog address: $ZERONET_BLOG_ADDRESS": "",
+    "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "${MY_USERNAME}'s Mail": "",
+    "Address:    $ZERONET_MAIL_ADDRESS": "",
+    "Public key: $ZERONET_MAIL_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_MAIL_ADDRESS": "",
+    "ZeroNet Mail address:     $ZERONET_MAIL_ADDRESS": "",
+    "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY": "",
+    "Address:    $ZERONET_FORUM_ADDRESS": "",
+    "Public key: $ZERONET_FORUM_PRIVATE_KEY": "",
+    "Unable to find site directory: $ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS": "",
+    "Forum address:     $ZERONET_FORUM_ADDRESS": "",
+    "Forum private key: $ZERONET_FORUM_PRIVATE_KEY": "",
+    "ZeroNet Forum address: $ZERONET_FORUM_ADDRESS": "",
+    "ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-meshweb.mo b/locale/fr_CH/freedombone-meshweb.mo
new file mode 100644
index 0000000000000000000000000000000000000000..0e7eb3f98b0c5e4e31262a66bff0aa2517905eea
Binary files /dev/null and b/locale/fr_CH/freedombone-meshweb.mo differ
diff --git a/locale/fr_CH/freedombone-mirrors.json b/locale/fr_CH/freedombone-mirrors.json
new file mode 100644
index 0000000000000000000000000000000000000000..bcebe53c351be37c712bfd15c04d03d2d77454a1
--- /dev/null
+++ b/locale/fr_CH/freedombone-mirrors.json
@@ -0,0 +1,8 @@
+{
+    "${PROJECT_NAME}-mirrors --sync [domain/url] -p [password]": "",
+    "  -p|--password [password]    Friend's mirrors user password": "",
+    "  -m|--mypassword [password]  Local mirrors user password": "",
+    "     --port [number]          Friend's server ssh port number": "",
+    "  -s|--sync [domain]          Friend's server domain to sync with": "",
+    "WARNING: failed to mirror repo ${repo_url}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-mirrors.mo b/locale/fr_CH/freedombone-mirrors.mo
new file mode 100644
index 0000000000000000000000000000000000000000..8b92c76f17a8b8217fd59d53427f422ca2dade34
Binary files /dev/null and b/locale/fr_CH/freedombone-mirrors.mo differ
diff --git a/locale/fr_CH/freedombone-pin-cert.json b/locale/fr_CH/freedombone-pin-cert.json
new file mode 100644
index 0000000000000000000000000000000000000000..dc2fd0c16342169cfd8bc3445b2a166b9614312c
--- /dev/null
+++ b/locale/fr_CH/freedombone-pin-cert.json
@@ -0,0 +1,3 @@
+{
+    "No certificate found for $DOMAIN_NAME": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-pin-cert.mo b/locale/fr_CH/freedombone-pin-cert.mo
new file mode 100644
index 0000000000000000000000000000000000000000..02c3d83772bcd2f406a7c80292b2b05265a3cf4e
Binary files /dev/null and b/locale/fr_CH/freedombone-pin-cert.mo differ
diff --git a/locale/fr_CH/freedombone-recoverkey.json b/locale/fr_CH/freedombone-recoverkey.json
new file mode 100644
index 0000000000000000000000000000000000000000..c48d48527dd5fcbb9f8a2d8171fc8848dd1b614a
--- /dev/null
+++ b/locale/fr_CH/freedombone-recoverkey.json
@@ -0,0 +1,11 @@
+{
+    "${PROJECT_NAME}-recoverkey -u [username] -d [drive]": "",
+    "User $MY_USERNAME does not exist on the system": "",
+    "Encryption keys": "",
+    "There was a problem mounting the USB drive to $GPG_USB_MOUNT": "",
+    "The directory $GPG_USB_MOUNT/.gnupg or $GPG_USB_MOUNT/.gnupg_fragments was not found": "",
+    "GPG Keyring loaded to $HOME_DIR": "",
+    "ssh keys imported": "",
+    "Now remove the USB drive. Insert the next drive containing a key fragment, or select Ok to finish": "",
+    "Starting key retrieval from $REMOTE_SERVER...": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-recoverkey.mo b/locale/fr_CH/freedombone-recoverkey.mo
new file mode 100644
index 0000000000000000000000000000000000000000..51846d909ebfef1edf64a9f80b04c2b5e59537eb
Binary files /dev/null and b/locale/fr_CH/freedombone-recoverkey.mo differ
diff --git a/locale/fr_CH/freedombone-remote.json b/locale/fr_CH/freedombone-remote.json
new file mode 100644
index 0000000000000000000000000000000000000000..c1c0d95e1d2d2014a2ca85c90430f8f5b3b09778
--- /dev/null
+++ b/locale/fr_CH/freedombone-remote.json
@@ -0,0 +1,6 @@
+{
+    "${PROJECT_NAME}-remote -u [username] -l [backup list filename] -m [min password length]": "",
+    "The user /home/$MY_USERNAME does not exist on the system": "",
+    "No remote backups list found: $FRIENDS_SERVERS_LIST": "",
+    "Remote backups list: $FRIENDS_SERVERS_LIST": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-remote.mo b/locale/fr_CH/freedombone-remote.mo
new file mode 100644
index 0000000000000000000000000000000000000000..6e1808827a6eba0a1f50f3dedccfe00cb6da2b81
Binary files /dev/null and b/locale/fr_CH/freedombone-remote.mo differ
diff --git a/locale/fr_CH/freedombone-renew-cert.json b/locale/fr_CH/freedombone-renew-cert.json
new file mode 100644
index 0000000000000000000000000000000000000000..05340eeda502e70999cd20c18707cf8c704f29ca
--- /dev/null
+++ b/locale/fr_CH/freedombone-renew-cert.json
@@ -0,0 +1,11 @@
+{
+    "${PROJECT_NAME}-renew-cert -h [hostname] -p [provider]": "",
+    "Adding Let's Encrypt certificate": "",
+    "Renewing Let's Encrypt certificate": "",
+    "Unable to add Let's encrypt certificate": "",
+    "Save the requested public key to /etc/ssl/certs/$HOSTNAME.new.crt": "",
+    "/etc/ssl/certs/$HOSTNAME.new.crt then run this command again.": "",
+    "$0: openssl is not installed, exiting": "",
+    "/etc/nginx/sites-available/$HOSTNAME does not exist": "",
+    "$PROVIDER is not currently supported": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-renew-cert.mo b/locale/fr_CH/freedombone-renew-cert.mo
new file mode 100644
index 0000000000000000000000000000000000000000..b8085ed35452ccafe464d70716eb103f630cfb0d
Binary files /dev/null and b/locale/fr_CH/freedombone-renew-cert.mo differ
diff --git a/locale/fr_CH/freedombone-repair-database.json b/locale/fr_CH/freedombone-repair-database.json
new file mode 100644
index 0000000000000000000000000000000000000000..51649c7102979a3fcca343cc9512d15b5b7659e2
--- /dev/null
+++ b/locale/fr_CH/freedombone-repair-database.json
@@ -0,0 +1,4 @@
+{
+    "$DATABASE database corruption could not be repaired. Restored from backup.": "",
+    "${PROJECT_NAME} database maintenance": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-repair-database.mo b/locale/fr_CH/freedombone-repair-database.mo
new file mode 100644
index 0000000000000000000000000000000000000000..ff9842e5435e793b87e3a4575421a46bfc46065e
Binary files /dev/null and b/locale/fr_CH/freedombone-repair-database.mo differ
diff --git a/locale/fr_CH/freedombone-restore-local.json b/locale/fr_CH/freedombone-restore-local.json
new file mode 100644
index 0000000000000000000000000000000000000000..7941ffcc13e20d5c9b8d55c9da7289a4a246bd21
--- /dev/null
+++ b/locale/fr_CH/freedombone-restore-local.json
@@ -0,0 +1,55 @@
+{
+    "Please attach a USB drive": "",
+    "There was a problem mounting the USB drive to $USB_MOUNT": "",
+    "Unable to unmount the drive. This means that the backup did not work": "",
+    "Setting permissions": "",
+    "Unmount encrypted USB": "",
+    "No backup directory found on the USB drive.": "",
+    "Checking that admin user exists": "",
+    "Username $ADMIN_USERNAME not found. Reinstall ${PROJECT_NAME} with this username.": "",
+    "Copying GPG keys from admin user to root": "",
+    "Restoring ${1} database": "",
+    "Unable to restore ${1} database": "",
+    "Restoring ${1} installation": "",
+    "Restoring configuration files": "",
+    "The admin username has changed from $PREV_ADMIN_USERNAME to $ADMIN_USERNAME. To restore you will first need to install a new ${PROJECT_NAME} system with an initial admin user named $PREV_ADMIN_USERNAME": "",
+    "Restoring mysql settings": "",
+    "Get the MariaDB password from the backup": "",
+    "MariaDB password file not found": "",
+    "Restore the MariaDB user table": "",
+    "Try again using the password obtained from backup": "",
+    "Restarting database": "",
+    "Change the MariaDB password to the backup version": "",
+    "Restoring Lets Encrypt settings": "",
+    "Restoring Tor settings": "",
+    "Restoring Mutt settings for $USERNAME": "",
+    "Restoring gnupg settings for $USERNAME": "",
+    "Restoring procmail settings for $USERNAME": "",
+    "Restoring spamassassin settings for $USERNAME": "",
+    "Restoring admin user README": "",
+    "Restoring IPFS": "",
+    "Restoring ssh keys for $USERNAME": "",
+    "Restoring config files for $USERNAME": "",
+    "Restoring fin files for $USERNAME": "",
+    "Restoring local files for $USERNAME": "",
+    "Restoring certificates": "",
+    "Restoring personal settings for $USERNAME": "",
+    "Restoring public mailing list": "",
+    "Restoring XMPP settings": "",
+    "Restoring syncthing configuration": "",
+    "Restoring syncthing shared files": "",
+    "Restoring syncthing files for $USERNAME": "",
+    "Restoring Gogs settings": "",
+    "Restoring Gogs repos": "",
+    "Restoring Gogs authorized_keys": "",
+    "Restoring Wiki installation ${WIKI_DOMAIN_NAME}": "",
+    "Restoring blog installation": "",
+    "No content directory found after restoring blog": "",
+    "Restoring cjdns installation": "",
+    "Restoring emails for $USERNAME": "",
+    "Restoring DLNA cache": "",
+    "Restoring VoIP settings": "",
+    "Restoring Tox node settings": "",
+    "Restore $RESTORE_APP": "",
+    "Restore from USB drive is complete. You can now unplug it.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-restore-local.mo b/locale/fr_CH/freedombone-restore-local.mo
new file mode 100644
index 0000000000000000000000000000000000000000..8728e6b9045c7f58309d72f9aacb60cf741c7eda
Binary files /dev/null and b/locale/fr_CH/freedombone-restore-local.mo differ
diff --git a/locale/fr_CH/freedombone-restore-remote.json b/locale/fr_CH/freedombone-restore-remote.json
new file mode 100644
index 0000000000000000000000000000000000000000..153baafb095353c07d0fa3abf9d60bed2d505595
--- /dev/null
+++ b/locale/fr_CH/freedombone-restore-remote.json
@@ -0,0 +1,41 @@
+{
+    "No friends list found at $BACKUP_LIST": "",
+    "Server not found within the friends list": "",
+    "Copying GPG keys from admin user to root": "",
+    "Restoring ${1} database": "",
+    "Unable to restore ${1} database": "",
+    "Restoring ${1} installation": "",
+    "Restoring configuration files": "",
+    "Restoring MariaDB settings": "",
+    "Get the MariaDB password from the backup": "",
+    "MariaDB password file not found": "",
+    "Restore the MariaDB user table": "",
+    "Try again using the password obtained from backup": "",
+    "Restarting database": "",
+    "Change the MariaDB password to the backup version": "",
+    "Restoring Lets Encrypt settings": "",
+    "Restoring Tor settings": "",
+    "Restoring Mutt settings for $USERNAME": "",
+    "Restoring gnupg settings for $USERNAME": "",
+    "Restoring procmail settings for $USERNAME": "",
+    "Restoring spamassassin settings for $USERNAME": "",
+    "Restoring README": "",
+    "Restoring IPFS": "",
+    "Restoring ssh keys for $USERNAME": "",
+    "Restoring config files for $USERNAME": "",
+    "Restoring fin files for $USERNAME": "",
+    "Restoring local files for $USERNAME": "",
+    "Restoring certificates": "",
+    "Restoring personal settings for $USERNAME": "",
+    "Restoring public mailing list": "",
+    "Restoring XMPP settings": "",
+    "Restoring syncthing configuration": "",
+    "Restoring syncthing shared files": "",
+    "Restoring syncthing files for $USERNAME": "",
+    "Restoring Mediagoblin installation": "",
+    "Restoring Gogs repos": "",
+    "Restoring Gogs authorized_keys": "",
+    "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+    "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+    "No content directory found after restoring blog": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-restore-remote.mo b/locale/fr_CH/freedombone-restore-remote.mo
new file mode 100644
index 0000000000000000000000000000000000000000..190ee2ec2c6e5f83f5392506c3238880316d3c34
Binary files /dev/null and b/locale/fr_CH/freedombone-restore-remote.mo differ
diff --git a/locale/fr_CH/freedombone-rmemail.json b/locale/fr_CH/freedombone-rmemail.json
new file mode 100644
index 0000000000000000000000000000000000000000..d67f055dd8ffd8bbea1f84bbaa4815ec4b658c2d
--- /dev/null
+++ b/locale/fr_CH/freedombone-rmemail.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-rmemail -u [username] -e [email address]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-rmemail.mo b/locale/fr_CH/freedombone-rmemail.mo
new file mode 100644
index 0000000000000000000000000000000000000000..fde0bf0428003c7ae13e837537f436e12f939155
Binary files /dev/null and b/locale/fr_CH/freedombone-rmemail.mo differ
diff --git a/locale/fr_CH/freedombone-rmlist.json b/locale/fr_CH/freedombone-rmlist.json
new file mode 100644
index 0000000000000000000000000000000000000000..d6bc8756442675cae64097827d0359cf470bb4a9
--- /dev/null
+++ b/locale/fr_CH/freedombone-rmlist.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-rmlist -u [username] -l [mailing list name] -e [list email address]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-rmlist.mo b/locale/fr_CH/freedombone-rmlist.mo
new file mode 100644
index 0000000000000000000000000000000000000000..0f695b750167141ebd4217f5e4b346b293292948
Binary files /dev/null and b/locale/fr_CH/freedombone-rmlist.mo differ
diff --git a/locale/fr_CH/freedombone-rmsipuser.json b/locale/fr_CH/freedombone-rmsipuser.json
new file mode 100644
index 0000000000000000000000000000000000000000..52e3578e598d96a1fe415b646b31e93ced51813b
--- /dev/null
+++ b/locale/fr_CH/freedombone-rmsipuser.json
@@ -0,0 +1,6 @@
+{
+    "${PROJECT_NAME}-rmsipuser [username]": "",
+    "SIP configuration file not found": "",
+    "User $MY_USERNAME not found": "",
+    "SIP user $MY_USERNAME removed": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-rmsipuser.mo b/locale/fr_CH/freedombone-rmsipuser.mo
new file mode 100644
index 0000000000000000000000000000000000000000..f4a6e98239632fde3302503c0c9906d66330b7f9
Binary files /dev/null and b/locale/fr_CH/freedombone-rmsipuser.mo differ
diff --git a/locale/fr_CH/freedombone-rmuser.json b/locale/fr_CH/freedombone-rmuser.json
new file mode 100644
index 0000000000000000000000000000000000000000..77abc30066144dd2cd48e506566bf6b292085ec4
--- /dev/null
+++ b/locale/fr_CH/freedombone-rmuser.json
@@ -0,0 +1,10 @@
+{
+    "Home directory does not exist for $MY_USERNAME": "",
+    "$COMPLETION_FILE not found": "",
+    "No admin user specified in $COMPLETION_FILE": "",
+    "No admin username specified in $COMPLETION_FILE": "",
+    "The administrator user cannot be removed": "",
+    "Do you really wish to remove the user '$MY_USERNAME' (y/n) ?": "",
+    "User $MY_USERNAME was not removed": "",
+    "User $MY_USERNAME was removed": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-rmuser.mo b/locale/fr_CH/freedombone-rmuser.mo
new file mode 100644
index 0000000000000000000000000000000000000000..40451af3afa9d8e8b299fab0b0e03b7fb0eba900
Binary files /dev/null and b/locale/fr_CH/freedombone-rmuser.mo differ
diff --git a/locale/fr_CH/freedombone-rmxmpp.json b/locale/fr_CH/freedombone-rmxmpp.json
new file mode 100644
index 0000000000000000000000000000000000000000..12011469df984c23009f3f37a59e9813f2b2ea2c
--- /dev/null
+++ b/locale/fr_CH/freedombone-rmxmpp.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-rmxmpp -e [email address]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-rmxmpp.mo b/locale/fr_CH/freedombone-rmxmpp.mo
new file mode 100644
index 0000000000000000000000000000000000000000..36ed1aff3d3b7dcb467eadc7a19f7d9757584c54
Binary files /dev/null and b/locale/fr_CH/freedombone-rmxmpp.mo differ
diff --git a/locale/fr_CH/freedombone-sec.json b/locale/fr_CH/freedombone-sec.json
new file mode 100644
index 0000000000000000000000000000000000000000..a95e9be504e8afdbf2d21fb00dd4a0797db932f7
--- /dev/null
+++ b/locale/fr_CH/freedombone-sec.json
@@ -0,0 +1,29 @@
+{
+    "Freedombone Security Configuration": "",
+    "\\nWeb/IMAP Ciphers:": "",
+    "Protocols:": "",
+    "Ciphers:": "",
+    "\\nSecure Shell Ciphers:": "",
+    "MACs:": "",
+    "KEX:": "",
+    "Host key algorithms:": "",
+    "SSH Passwords": "",
+    "\\nAllow SSH login using passwords?": "",
+    "\\nXMPP Ciphers:": "",
+    "ECC Curve:": "",
+    "Final Confirmation": "",
+    "\\nPlease confirm that you wish your security settings to be changed?\\n\\nWARNING: any mistakes made in the security settings could compromise your system, so be extra careful when answering 'yes'.": "",
+    "Renew a StartSSL certificate": "",
+    "Freedombone Security Settings": "",
+    "Enter the domain name": "",
+    "Don't include the https://": "",
+    "An existing certificate for $renew_domain was not found": "",
+    "Invalid domain name: $renew_domain": "",
+    "Renew a Let's Encrypt certificate": "",
+    "Create a new Let's Encrypt certificate": "",
+    "Invalid domain name: $new_domain": "",
+    "Update ciphersuite": "",
+    "The ciphersuite has been updated to recommended versions": "",
+    "Import file $IMPORT_FILE not found": "",
+    "Security settings exported to $EXPORT_FILE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-sec.mo b/locale/fr_CH/freedombone-sec.mo
new file mode 100644
index 0000000000000000000000000000000000000000..21ef62d17b7729a6613e08f2f4dd5bdc17200829
Binary files /dev/null and b/locale/fr_CH/freedombone-sec.mo differ
diff --git a/locale/fr_CH/freedombone-splitkey.json b/locale/fr_CH/freedombone-splitkey.json
new file mode 100644
index 0000000000000000000000000000000000000000..5f1aeaf4eeab6b81844a50644c8c59e5b4963890
--- /dev/null
+++ b/locale/fr_CH/freedombone-splitkey.json
@@ -0,0 +1,12 @@
+{
+    "${PROJECT_NAME}-splitkey -u [username] -n [number of fragments] -e [email address] --fullname [Full name]": "",
+    "User $MY_USERNAME does not exist on the system": "",
+    "gpg key for $MY_EMAIL_ADDRESS was not found": "",
+    "gpg backup key for '$MY_NAME' was not found": "",
+    "Unable to extract public key for $KEYID": "",
+    "Unable to extract private key for $KEYID": "",
+    "Unable to extract backup public key for $MY_BACKUP_KEY_ID": "",
+    "Unable to extract backup private key for $MY_BACKUP_KEY_ID": "",
+    "Unable to split the gpg key": "",
+    "$KEY_SHARES key shares created": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-splitkey.mo b/locale/fr_CH/freedombone-splitkey.mo
new file mode 100644
index 0000000000000000000000000000000000000000..486ea1909ba3146a1043f8dd363ae722ba5f34d5
Binary files /dev/null and b/locale/fr_CH/freedombone-splitkey.mo differ
diff --git a/locale/fr_CH/freedombone-unignore.json b/locale/fr_CH/freedombone-unignore.json
new file mode 100644
index 0000000000000000000000000000000000000000..135e9244491bae413c7ae41d4fb33d148a10222a
--- /dev/null
+++ b/locale/fr_CH/freedombone-unignore.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-unignore -u [username] -e [mail address] -t [text in subject line]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-unignore.mo b/locale/fr_CH/freedombone-unignore.mo
new file mode 100644
index 0000000000000000000000000000000000000000..a61d501b0ae54795d1cfc7262a67c3b20636e0d4
Binary files /dev/null and b/locale/fr_CH/freedombone-unignore.mo differ
diff --git a/locale/fr_CH/freedombone-update-date.json b/locale/fr_CH/freedombone-update-date.json
new file mode 100644
index 0000000000000000000000000000000000000000..948bd604f69cc37a86acc7ec0269cac83fb60be0
--- /dev/null
+++ b/locale/fr_CH/freedombone-update-date.json
@@ -0,0 +1,5 @@
+{
+    "Date went backwards between tlsdate updates. ": "",
+    "tlsdate anomaly": "",
+    "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-update-date.mo b/locale/fr_CH/freedombone-update-date.mo
new file mode 100644
index 0000000000000000000000000000000000000000..b3ed9499153460b12f8a95cead5f490df93c70d6
Binary files /dev/null and b/locale/fr_CH/freedombone-update-date.mo differ
diff --git a/locale/fr_CH/freedombone-wifi.json b/locale/fr_CH/freedombone-wifi.json
new file mode 100644
index 0000000000000000000000000000000000000000..73b09f04cffdee76b0243c0c9de85ac3a487be4f
--- /dev/null
+++ b/locale/fr_CH/freedombone-wifi.json
@@ -0,0 +1,9 @@
+{
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
+    "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-wifi.mo b/locale/fr_CH/freedombone-wifi.mo
new file mode 100644
index 0000000000000000000000000000000000000000..173a71d050d8c2110e6dbd1aef2568a7132ac956
Binary files /dev/null and b/locale/fr_CH/freedombone-wifi.mo differ
diff --git a/locale/fr_CH/freedombone-xmpp-pass.json b/locale/fr_CH/freedombone-xmpp-pass.json
new file mode 100644
index 0000000000000000000000000000000000000000..a416ce8ea4c40ab65daccb193de213ebb55de8ca
--- /dev/null
+++ b/locale/fr_CH/freedombone-xmpp-pass.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-xmpp-pass -e [email address]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-xmpp-pass.mo b/locale/fr_CH/freedombone-xmpp-pass.mo
new file mode 100644
index 0000000000000000000000000000000000000000..3fd525e04e02163cc4f7a337380884501cad7543
Binary files /dev/null and b/locale/fr_CH/freedombone-xmpp-pass.mo differ
diff --git a/locale/fr_CH/freedombone-zram.json b/locale/fr_CH/freedombone-zram.json
new file mode 100644
index 0000000000000000000000000000000000000000..de1f963de3c834847d79b2015137874edfce53bd
--- /dev/null
+++ b/locale/fr_CH/freedombone-zram.json
@@ -0,0 +1,3 @@
+{
+    "${PROJECT_NAME}-zram [on|off]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-zram.mo b/locale/fr_CH/freedombone-zram.mo
new file mode 100644
index 0000000000000000000000000000000000000000..8efa4844f29d45a3ac734aaed51ce89192f41f09
Binary files /dev/null and b/locale/fr_CH/freedombone-zram.mo differ
diff --git a/locale/fr_CH/freedombone.json b/locale/fr_CH/freedombone.json
new file mode 100644
index 0000000000000000000000000000000000000000..91cd0528b63628d1f946bebcd44258b1116766bd
--- /dev/null
+++ b/locale/fr_CH/freedombone.json
@@ -0,0 +1,146 @@
+{
+    "Search engine login": "",
+    "${PROJECT_NAME} -c [configuration file]": "",
+    "or for more specialised variants you can specify '$VARIANT_MAILBOX', '$VARIANT_CLOUD',": "",
+    "'$VARIANT_CHAT', '$VARIANT_SOCIAL', '$VARIANT_MEDIA', '$VARIANT_WRITER', '$VARIANT_DEVELOPER'": "",
+    "or '$VARIANT_MESH'.": "",
+    "If you wish to install everything except email then use the '$VARIANT_NONMAILBOX' variaint.": "",
+    "The command ${PROJECT_NAME}-remote was not found": "",
+    "  ${PROJECT_NAME}-remote -u $MY_USERNAME -l $FRIENDS_SERVERS_LIST -m $MINIMUM_PASSWORD_LENGTH -r yes": "",
+    "The domain $TEST_DOMAIN_NAME has too many subdomains. It should be of the type w.x.y.z, x.y.z or y.z": "",
+    "The domain $TEST_DOMAIN_NAME has no top level domain. It should be of the type w.x.y.z, x.y.z or y.z": "",
+    "The command ${PROJECT_NAME}-config was not found": "",
+    "  ${PROJECT_NAME}-config -u $MY_USERNAME -f $CONFIGURATION_FILE -w $PROJECT_WEBSITE -b $PROJECT_BITMESSAGE -m $MINIMUM_PASSWORD_LENGTH --minimal [yes|no]": "",
+    "Encrypted backup to other servers": "",
+    "${PROJECT_NAME} Configuration": "",
+    "\\nDo you wish to configure some remote backup locations?": "",
+    "There is no user '$MY_USERNAME' on the system. Use 'adduser $MY_USERNAME' to create the user.": "",
+    "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant.": "",
+    "The configuration file $CONFIGURATION_FILE was not found": "",
+    "Check your internet connection, /etc/network/interfaces and /etc/resolv.conf, then delete $COMPLETION_FILE, run 'rm -fR /var/lib/apt/lists/* && apt-get update --fix-missing' and run this script again. If hash sum mismatches persist then try setting $DEBIAN_REPO to a different mirror and also change /etc/apt/sources.list.": "",
+    "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+    "${onion_service_name} onion site hostname not found": "",
+    "Private certificate for $CHECK_HOSTNAME was not created": "",
+    "Public certificate for $CHECK_HOSTNAME was not created": "",
+    "Diffie–Hellman parameters for $CHECK_HOSTNAME were not created": "",
+    "Lets Encrypt failed for $SITE_DOMAIN_NAME, so try making a self-signed cert": "",
+    "Lets Encrypt failed for $SITE_DOMAIN_NAME": "",
+    "Mesh Networking (cjdns)": "",
+    "cjdns IPv6 address: $CJDNS_IPV6": "",
+    "cjdns public key: $CJDNS_PUBLIC_KEY": "",
+    "cjdns private key: $CJDNS_PRIVATE_KEY": "",
+    "cjdns password: $CJDNS_PASSWORD": "",
+    "cjdns port: $CJDNS_PORT": "",
+    "Forward port $CJDNS_PORT from your internet router to the ${PROJECT_NAME}": "",
+    "Address:    $ZERONET_BLOG_ADDRESS": "",
+    "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_BLOG_ADDRESS": "",
+    "ZeroNet Blog address:     $ZERONET_BLOG_ADDRESS": "",
+    "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY": "",
+    "Address:    $ZERONET_MAIL_ADDRESS": "",
+    "Public key: $ZERONET_MAIL_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_MAIL_ADDRESS": "",
+    "ZeroNet Mail address:     $ZERONET_MAIL_ADDRESS": "",
+    "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY": "",
+    "ZeroNet Mail address": "",
+    "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS": "",
+    "${MY_USERNAME}'s Forum": "",
+    "Address:    $ZERONET_FORUM_ADDRESS": "",
+    "Public key: $ZERONET_FORUM_PRIVATE_KEY": "",
+    "Unable to find site directory: /opt/zeronet/data/$ZERONET_FORUM_ADDRESS": "",
+    "Forum address:     $ZERONET_FORUM_ADDRESS": "",
+    "Forum private key: $ZERONET_FORUM_PRIVATE_KEY": "",
+    "ZeroNet Forum address": "",
+    "ZeroNet Forum address: $ZERONET_FORUM_ADDRESS": "",
+    "ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY": "",
+    "OneRNG package could not be downloaded": "",
+    "OneRNG package: $ONERNG_PACKAGE": "",
+    "Hash does not match. This could indicate that the package has been tampered with.": "",
+    "OneRNG expected package hash: $ONERNG_PACKAGE_HASH": "",
+    "OneRNG actual hash: $hash": "",
+    "OneRNG Device": "",
+    "Please plug in the OneRNG device": "",
+    "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+    "Added onion site for ${onion_service_name}": "",
+    "# Tripwire reports which have no violations don't need to be logged": "",
+    "ERROR: Dovecot does not appear to have installed. $CHECK_MESSAGE": "",
+    "Unknown subkey usage: $GPG_KEY_USAGE": "",
+    "Public key:  $MY_GPG_PUBLIC_KEY": "",
+    "Private key: $MY_GPG_PRIVATE_KEY": "",
+    "GPG public key file $MY_GPG_PUBLIC_KEY was not found": "",
+    "GPG private key file $MY_GPG_PRIVATE_KEY was not found": "",
+    "The GPG key for $MY_EMAIL_ADDRESS could not be imported": "",
+    "A GPG key for $MY_EMAIL_ADDRESS could not be created": "",
+    "Change your GPG password": "",
+    "It's very important to add a password to your GPG key so that": "",
+    "if anyone does get access to your email they still won't be able": "",
+    "Publish your GPG public key": "",
+    "If you have imported legacy email which is not encrypted": "",
+    "ERROR: Mutt does not appear to have installed. $CHECK_MESSAGE": "",
+    "Creating the $PUBLIC_MAILING_LIST mailing list": "",
+    "$PUBLIC_MAILING_LIST mailing list": "",
+    "To subscribe to the $PUBLIC_MAILING_LIST mailing list send a": "",
+    "cleartext email to $PUBLIC_MAILING_LIST+subscribe@$DEFAULT_DOMAIN_NAME": "",
+    "\n  *** ${PROJECT_NAME} mailbox installation is complete ***\n\n      Now on your internet router forward ports\n     25, 587, 465, 993 and 2222 to the ${PROJECT_NAME}\n": "",
+    "Email import directory $IMPORT_MAILDIR not found": "",
+    "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": "",
+    "Your MariaDB password is: $MARIADB_PASSWORD": "",
+    "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": "",
+    "Unable to clone repo $GOPATH/src/github.com/gogits/gogs": "",
+    "Gogs admin user password": "",
+    "Database password: $MARIADB_PASSWORD": "",
+    "Gogs admin user password: $GIT_ADMIN_PASSWORD": "",
+    "Gogs admin user email: $MY_EMAIL_ADDRESS": "",
+    "Note that there's a usability/security trade-off made here.": "",
+    "In order to allow git clone via http we don't redirect everything": "",
+    "should change /etc/nginx/sites-available/$GIT_DOMAIN_NAME to redirect everything over https.": "",
+    "Your Tox node public key is": "",
+    "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+    "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+    "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+    "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+    "Your XMPP password is: $XMPP_PASSWORD": "",
+    "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": "",
+    "IRC onion domain": "",
+    "IRC Server": "",
+    "Wiki password": "",
+    "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+    "Wiki username: $MY_USERNAME": "",
+    "Wiki password: $WIKI_ADMIN_PASSWORD": "",
+    "Your blog username: $MY_USERNAME": "",
+    "Your blog password is: $FULLBLOG_ADMIN_PASSWORD": "",
+    "Log into your blog at https://$FULLBLOG_DOMAIN_NAME/login": "",
+    "Blog onion domain: ${FULLBLOG_ONION_HOSTNAME}": "",
+    "Log into your blog at https://${FULLBLOG_ONION_HOSTNAME}/login": "",
+    "RSS Reader": "",
+    "RSS reader domain: ${RSS_READER_DOMAIN_NAME}": "",
+    "RSS reader onion domain: ${RSS_READER_ONION_HOSTNAME}": "",
+    "RSS reader admin username: admin": "",
+    "RSS reader admin password: ${RSS_READER_ADMIN_PASSWORD}": "",
+    "GNU Social": "",
+    "Microblog administrator": "",
+    "Microblog administrator nickname: $MY_USERNAME": "",
+    "Microblog administrator password: $MICROBLOG_ADMIN_PASSWORD": "",
+    "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
+    "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
+    "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
+    "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
+    "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
+    "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
+    "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": "",
+    "VoIP onion domain": "",
+    "VoIP Server": "",
+    "VoIP onion domain:$VOIP_ONION_HOSTNAME": "",
+    "VoIP server password: $VOIP_SERVER_PASSWORD": "",
+    "SIP onion domain": "",
+    "SIP Server": "",
+    "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+    "SIP server username: $MY_USERNAME": "",
+    "SIP server extension: 201": "",
+    "SIP server password: $SIP_SERVER_PASSWORD": "",
+    "\n    *** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n    Now forward these ports from your internet router\n\n    HTTP     80\n    HTTPS    443\n    SSH      2222\n    DLNA     1900\n    DLNA     8200\n    XMPP     5222-5223\n    XMPP     5269\n    XMPP     5280-5281\n    IRC      6697\n    Git      9418\n    Email    25\n    Email    587\n    Email    465\n    Email    993\n    VoIP     64738\n    VoIP     5060\n    Tox      33445\n    ": "",
+    "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone.mo b/locale/fr_CH/freedombone.mo
new file mode 100644
index 0000000000000000000000000000000000000000..d04e48f8e18066e3e22b432b513d94e458b91118
Binary files /dev/null and b/locale/fr_CH/freedombone.mo differ
diff --git a/locale/fr_ca/freedombone-config.json b/locale/fr_ca/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/fr_ca/freedombone-config.json
+++ b/locale/fr_ca/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/fr_ca/freedombone-controlpanel.json b/locale/fr_ca/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/fr_ca/freedombone-controlpanel.json
+++ b/locale/fr_ca/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-dhparam.json b/locale/fr_ca/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/fr_ca/freedombone-dhparam.json
+++ b/locale/fr_ca/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-image.json b/locale/fr_ca/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/fr_ca/freedombone-image.json
+++ b/locale/fr_ca/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-wifi.json b/locale/fr_ca/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/fr_ca/freedombone-wifi.json
+++ b/locale/fr_ca/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone.json b/locale/fr_ca/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/fr_ca/freedombone.json
+++ b/locale/fr_ca/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/ga/freedombone-config.json b/locale/ga/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/ga/freedombone-config.json
+++ b/locale/ga/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/ga/freedombone-controlpanel.json b/locale/ga/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/ga/freedombone-controlpanel.json
+++ b/locale/ga/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/ga/freedombone-dhparam.json b/locale/ga/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/ga/freedombone-dhparam.json
+++ b/locale/ga/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/ga/freedombone-image.json b/locale/ga/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/ga/freedombone-image.json
+++ b/locale/ga/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/ga/freedombone-wifi.json b/locale/ga/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/ga/freedombone-wifi.json
+++ b/locale/ga/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/ga/freedombone.json b/locale/ga/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/ga/freedombone.json
+++ b/locale/ga/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/gl/freedombone-config.json b/locale/gl/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/gl/freedombone-config.json
+++ b/locale/gl/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/gl/freedombone-controlpanel.json b/locale/gl/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/gl/freedombone-controlpanel.json
+++ b/locale/gl/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/gl/freedombone-dhparam.json b/locale/gl/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/gl/freedombone-dhparam.json
+++ b/locale/gl/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/gl/freedombone-image.json b/locale/gl/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/gl/freedombone-image.json
+++ b/locale/gl/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/gl/freedombone-wifi.json b/locale/gl/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/gl/freedombone-wifi.json
+++ b/locale/gl/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/gl/freedombone.json b/locale/gl/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/gl/freedombone.json
+++ b/locale/gl/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/gu/freedombone-config.json b/locale/gu/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/gu/freedombone-config.json
+++ b/locale/gu/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/gu/freedombone-controlpanel.json b/locale/gu/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/gu/freedombone-controlpanel.json
+++ b/locale/gu/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/gu/freedombone-dhparam.json b/locale/gu/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/gu/freedombone-dhparam.json
+++ b/locale/gu/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/gu/freedombone-image.json b/locale/gu/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/gu/freedombone-image.json
+++ b/locale/gu/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/gu/freedombone-wifi.json b/locale/gu/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/gu/freedombone-wifi.json
+++ b/locale/gu/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/gu/freedombone.json b/locale/gu/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/gu/freedombone.json
+++ b/locale/gu/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/he/freedombone-config.json b/locale/he/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/he/freedombone-config.json
+++ b/locale/he/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/he/freedombone-controlpanel.json b/locale/he/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/he/freedombone-controlpanel.json
+++ b/locale/he/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/he/freedombone-dhparam.json b/locale/he/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/he/freedombone-dhparam.json
+++ b/locale/he/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/he/freedombone-image.json b/locale/he/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/he/freedombone-image.json
+++ b/locale/he/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/he/freedombone-wifi.json b/locale/he/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/he/freedombone-wifi.json
+++ b/locale/he/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/he/freedombone.json b/locale/he/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/he/freedombone.json
+++ b/locale/he/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/hi/freedombone-config.json b/locale/hi/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/hi/freedombone-config.json
+++ b/locale/hi/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/hi/freedombone-controlpanel.json b/locale/hi/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/hi/freedombone-controlpanel.json
+++ b/locale/hi/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/hi/freedombone-dhparam.json b/locale/hi/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/hi/freedombone-dhparam.json
+++ b/locale/hi/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/hi/freedombone-image.json b/locale/hi/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/hi/freedombone-image.json
+++ b/locale/hi/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/hi/freedombone-wifi.json b/locale/hi/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/hi/freedombone-wifi.json
+++ b/locale/hi/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/hi/freedombone.json b/locale/hi/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/hi/freedombone.json
+++ b/locale/hi/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/hr/freedombone-config.json b/locale/hr/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/hr/freedombone-config.json
+++ b/locale/hr/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/hr/freedombone-controlpanel.json b/locale/hr/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/hr/freedombone-controlpanel.json
+++ b/locale/hr/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/hr/freedombone-dhparam.json b/locale/hr/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/hr/freedombone-dhparam.json
+++ b/locale/hr/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/hr/freedombone-image.json b/locale/hr/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/hr/freedombone-image.json
+++ b/locale/hr/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/hr/freedombone-wifi.json b/locale/hr/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/hr/freedombone-wifi.json
+++ b/locale/hr/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/hr/freedombone.json b/locale/hr/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/hr/freedombone.json
+++ b/locale/hr/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/hu/freedombone-config.json b/locale/hu/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/hu/freedombone-config.json
+++ b/locale/hu/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/hu/freedombone-controlpanel.json b/locale/hu/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/hu/freedombone-controlpanel.json
+++ b/locale/hu/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/hu/freedombone-dhparam.json b/locale/hu/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/hu/freedombone-dhparam.json
+++ b/locale/hu/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/hu/freedombone-image.json b/locale/hu/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/hu/freedombone-image.json
+++ b/locale/hu/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/hu/freedombone-wifi.json b/locale/hu/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/hu/freedombone-wifi.json
+++ b/locale/hu/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/hu/freedombone.json b/locale/hu/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/hu/freedombone.json
+++ b/locale/hu/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/id/freedombone-config.json b/locale/id/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/id/freedombone-config.json
+++ b/locale/id/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/id/freedombone-controlpanel.json b/locale/id/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/id/freedombone-controlpanel.json
+++ b/locale/id/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/id/freedombone-dhparam.json b/locale/id/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/id/freedombone-dhparam.json
+++ b/locale/id/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/id/freedombone-image.json b/locale/id/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/id/freedombone-image.json
+++ b/locale/id/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/id/freedombone-wifi.json b/locale/id/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/id/freedombone-wifi.json
+++ b/locale/id/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/id/freedombone.json b/locale/id/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/id/freedombone.json
+++ b/locale/id/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/is/freedombone-config.json b/locale/is/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/is/freedombone-config.json
+++ b/locale/is/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/is/freedombone-controlpanel.json b/locale/is/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/is/freedombone-controlpanel.json
+++ b/locale/is/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/is/freedombone-dhparam.json b/locale/is/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/is/freedombone-dhparam.json
+++ b/locale/is/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/is/freedombone-image.json b/locale/is/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/is/freedombone-image.json
+++ b/locale/is/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/is/freedombone-wifi.json b/locale/is/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/is/freedombone-wifi.json
+++ b/locale/is/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/is/freedombone.json b/locale/is/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/is/freedombone.json
+++ b/locale/is/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/it/freedombone-config.json b/locale/it/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/it/freedombone-config.json
+++ b/locale/it/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/it/freedombone-controlpanel.json b/locale/it/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/it/freedombone-controlpanel.json
+++ b/locale/it/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/it/freedombone-dhparam.json b/locale/it/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/it/freedombone-dhparam.json
+++ b/locale/it/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/it/freedombone-image.json b/locale/it/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/it/freedombone-image.json
+++ b/locale/it/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/it/freedombone-wifi.json b/locale/it/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/it/freedombone-wifi.json
+++ b/locale/it/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/it/freedombone.json b/locale/it/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/it/freedombone.json
+++ b/locale/it/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/ja/freedombone-config.json b/locale/ja/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/ja/freedombone-config.json
+++ b/locale/ja/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/ja/freedombone-controlpanel.json b/locale/ja/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/ja/freedombone-controlpanel.json
+++ b/locale/ja/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/ja/freedombone-dhparam.json b/locale/ja/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/ja/freedombone-dhparam.json
+++ b/locale/ja/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/ja/freedombone-image.json b/locale/ja/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/ja/freedombone-image.json
+++ b/locale/ja/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/ja/freedombone-wifi.json b/locale/ja/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/ja/freedombone-wifi.json
+++ b/locale/ja/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/ja/freedombone.json b/locale/ja/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/ja/freedombone.json
+++ b/locale/ja/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/ka/freedombone-config.json b/locale/ka/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/ka/freedombone-config.json
+++ b/locale/ka/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/ka/freedombone-controlpanel.json b/locale/ka/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/ka/freedombone-controlpanel.json
+++ b/locale/ka/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/ka/freedombone-dhparam.json b/locale/ka/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/ka/freedombone-dhparam.json
+++ b/locale/ka/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/ka/freedombone-image.json b/locale/ka/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/ka/freedombone-image.json
+++ b/locale/ka/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/ka/freedombone-wifi.json b/locale/ka/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/ka/freedombone-wifi.json
+++ b/locale/ka/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/ka/freedombone.json b/locale/ka/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/ka/freedombone.json
+++ b/locale/ka/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/km/freedombone-config.json b/locale/km/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/km/freedombone-config.json
+++ b/locale/km/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/km/freedombone-controlpanel.json b/locale/km/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/km/freedombone-controlpanel.json
+++ b/locale/km/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/km/freedombone-dhparam.json b/locale/km/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/km/freedombone-dhparam.json
+++ b/locale/km/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/km/freedombone-image.json b/locale/km/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/km/freedombone-image.json
+++ b/locale/km/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/km/freedombone-wifi.json b/locale/km/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/km/freedombone-wifi.json
+++ b/locale/km/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/km/freedombone.json b/locale/km/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/km/freedombone.json
+++ b/locale/km/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/kn/freedombone-config.json b/locale/kn/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/kn/freedombone-config.json
+++ b/locale/kn/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/kn/freedombone-controlpanel.json b/locale/kn/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/kn/freedombone-controlpanel.json
+++ b/locale/kn/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/kn/freedombone-dhparam.json b/locale/kn/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/kn/freedombone-dhparam.json
+++ b/locale/kn/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/kn/freedombone-image.json b/locale/kn/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/kn/freedombone-image.json
+++ b/locale/kn/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/kn/freedombone-wifi.json b/locale/kn/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/kn/freedombone-wifi.json
+++ b/locale/kn/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/kn/freedombone.json b/locale/kn/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/kn/freedombone.json
+++ b/locale/kn/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/ko/freedombone-config.json b/locale/ko/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/ko/freedombone-config.json
+++ b/locale/ko/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/ko/freedombone-controlpanel.json b/locale/ko/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/ko/freedombone-controlpanel.json
+++ b/locale/ko/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/ko/freedombone-dhparam.json b/locale/ko/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/ko/freedombone-dhparam.json
+++ b/locale/ko/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/ko/freedombone-image.json b/locale/ko/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/ko/freedombone-image.json
+++ b/locale/ko/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/ko/freedombone-wifi.json b/locale/ko/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/ko/freedombone-wifi.json
+++ b/locale/ko/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/ko/freedombone.json b/locale/ko/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/ko/freedombone.json
+++ b/locale/ko/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/lo/freedombone-config.json b/locale/lo/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/lo/freedombone-config.json
+++ b/locale/lo/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/lo/freedombone-controlpanel.json b/locale/lo/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/lo/freedombone-controlpanel.json
+++ b/locale/lo/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/lo/freedombone-dhparam.json b/locale/lo/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/lo/freedombone-dhparam.json
+++ b/locale/lo/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/lo/freedombone-image.json b/locale/lo/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/lo/freedombone-image.json
+++ b/locale/lo/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/lo/freedombone-wifi.json b/locale/lo/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/lo/freedombone-wifi.json
+++ b/locale/lo/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/lo/freedombone.json b/locale/lo/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/lo/freedombone.json
+++ b/locale/lo/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/lt/freedombone-config.json b/locale/lt/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/lt/freedombone-config.json
+++ b/locale/lt/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/lt/freedombone-controlpanel.json b/locale/lt/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/lt/freedombone-controlpanel.json
+++ b/locale/lt/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/lt/freedombone-dhparam.json b/locale/lt/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/lt/freedombone-dhparam.json
+++ b/locale/lt/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/lt/freedombone-image.json b/locale/lt/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/lt/freedombone-image.json
+++ b/locale/lt/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/lt/freedombone-wifi.json b/locale/lt/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/lt/freedombone-wifi.json
+++ b/locale/lt/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/lt/freedombone.json b/locale/lt/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/lt/freedombone.json
+++ b/locale/lt/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/lv/freedombone-config.json b/locale/lv/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/lv/freedombone-config.json
+++ b/locale/lv/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/lv/freedombone-controlpanel.json b/locale/lv/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/lv/freedombone-controlpanel.json
+++ b/locale/lv/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/lv/freedombone-dhparam.json b/locale/lv/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/lv/freedombone-dhparam.json
+++ b/locale/lv/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/lv/freedombone-image.json b/locale/lv/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/lv/freedombone-image.json
+++ b/locale/lv/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/lv/freedombone-wifi.json b/locale/lv/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/lv/freedombone-wifi.json
+++ b/locale/lv/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/lv/freedombone.json b/locale/lv/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/lv/freedombone.json
+++ b/locale/lv/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/mi_tn/freedombone-config.json b/locale/mi_tn/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/mi_tn/freedombone-config.json
+++ b/locale/mi_tn/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/mi_tn/freedombone-controlpanel.json b/locale/mi_tn/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/mi_tn/freedombone-controlpanel.json
+++ b/locale/mi_tn/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-dhparam.json b/locale/mi_tn/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/mi_tn/freedombone-dhparam.json
+++ b/locale/mi_tn/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-image.json b/locale/mi_tn/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/mi_tn/freedombone-image.json
+++ b/locale/mi_tn/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-wifi.json b/locale/mi_tn/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/mi_tn/freedombone-wifi.json
+++ b/locale/mi_tn/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone.json b/locale/mi_tn/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/mi_tn/freedombone.json
+++ b/locale/mi_tn/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/mi_wwow/freedombone-config.json b/locale/mi_wwow/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/mi_wwow/freedombone-config.json
+++ b/locale/mi_wwow/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/mi_wwow/freedombone-controlpanel.json b/locale/mi_wwow/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/mi_wwow/freedombone-controlpanel.json
+++ b/locale/mi_wwow/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-dhparam.json b/locale/mi_wwow/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/mi_wwow/freedombone-dhparam.json
+++ b/locale/mi_wwow/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-image.json b/locale/mi_wwow/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/mi_wwow/freedombone-image.json
+++ b/locale/mi_wwow/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-wifi.json b/locale/mi_wwow/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/mi_wwow/freedombone-wifi.json
+++ b/locale/mi_wwow/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone.json b/locale/mi_wwow/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/mi_wwow/freedombone.json
+++ b/locale/mi_wwow/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/ml/freedombone-config.json b/locale/ml/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/ml/freedombone-config.json
+++ b/locale/ml/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/ml/freedombone-controlpanel.json b/locale/ml/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/ml/freedombone-controlpanel.json
+++ b/locale/ml/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/ml/freedombone-dhparam.json b/locale/ml/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/ml/freedombone-dhparam.json
+++ b/locale/ml/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/ml/freedombone-image.json b/locale/ml/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/ml/freedombone-image.json
+++ b/locale/ml/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/ml/freedombone-wifi.json b/locale/ml/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/ml/freedombone-wifi.json
+++ b/locale/ml/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/ml/freedombone.json b/locale/ml/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/ml/freedombone.json
+++ b/locale/ml/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/mn/freedombone-config.json b/locale/mn/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/mn/freedombone-config.json
+++ b/locale/mn/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/mn/freedombone-controlpanel.json b/locale/mn/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/mn/freedombone-controlpanel.json
+++ b/locale/mn/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/mn/freedombone-dhparam.json b/locale/mn/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/mn/freedombone-dhparam.json
+++ b/locale/mn/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/mn/freedombone-image.json b/locale/mn/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/mn/freedombone-image.json
+++ b/locale/mn/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/mn/freedombone-wifi.json b/locale/mn/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/mn/freedombone-wifi.json
+++ b/locale/mn/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/mn/freedombone.json b/locale/mn/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/mn/freedombone.json
+++ b/locale/mn/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/ms/freedombone-config.json b/locale/ms/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/ms/freedombone-config.json
+++ b/locale/ms/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/ms/freedombone-controlpanel.json b/locale/ms/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/ms/freedombone-controlpanel.json
+++ b/locale/ms/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/ms/freedombone-dhparam.json b/locale/ms/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/ms/freedombone-dhparam.json
+++ b/locale/ms/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/ms/freedombone-image.json b/locale/ms/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/ms/freedombone-image.json
+++ b/locale/ms/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/ms/freedombone-wifi.json b/locale/ms/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/ms/freedombone-wifi.json
+++ b/locale/ms/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/ms/freedombone.json b/locale/ms/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/ms/freedombone.json
+++ b/locale/ms/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/nl/freedombone-config.json b/locale/nl/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/nl/freedombone-config.json
+++ b/locale/nl/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/nl/freedombone-controlpanel.json b/locale/nl/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/nl/freedombone-controlpanel.json
+++ b/locale/nl/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/nl/freedombone-dhparam.json b/locale/nl/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/nl/freedombone-dhparam.json
+++ b/locale/nl/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/nl/freedombone-image.json b/locale/nl/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/nl/freedombone-image.json
+++ b/locale/nl/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/nl/freedombone-wifi.json b/locale/nl/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/nl/freedombone-wifi.json
+++ b/locale/nl/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/nl/freedombone.json b/locale/nl/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/nl/freedombone.json
+++ b/locale/nl/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/nn/freedombone-config.json b/locale/nn/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/nn/freedombone-config.json
+++ b/locale/nn/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/nn/freedombone-controlpanel.json b/locale/nn/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/nn/freedombone-controlpanel.json
+++ b/locale/nn/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/nn/freedombone-dhparam.json b/locale/nn/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/nn/freedombone-dhparam.json
+++ b/locale/nn/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/nn/freedombone-image.json b/locale/nn/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/nn/freedombone-image.json
+++ b/locale/nn/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/nn/freedombone-wifi.json b/locale/nn/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/nn/freedombone-wifi.json
+++ b/locale/nn/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/nn/freedombone.json b/locale/nn/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/nn/freedombone.json
+++ b/locale/nn/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/no/freedombone-config.json b/locale/no/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/no/freedombone-config.json
+++ b/locale/no/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/no/freedombone-controlpanel.json b/locale/no/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/no/freedombone-controlpanel.json
+++ b/locale/no/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/no/freedombone-dhparam.json b/locale/no/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/no/freedombone-dhparam.json
+++ b/locale/no/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/no/freedombone-image.json b/locale/no/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/no/freedombone-image.json
+++ b/locale/no/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/no/freedombone-wifi.json b/locale/no/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/no/freedombone-wifi.json
+++ b/locale/no/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/no/freedombone.json b/locale/no/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/no/freedombone.json
+++ b/locale/no/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/no_gr/freedombone-config.json b/locale/no_gr/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/no_gr/freedombone-config.json
+++ b/locale/no_gr/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/no_gr/freedombone-controlpanel.json b/locale/no_gr/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/no_gr/freedombone-controlpanel.json
+++ b/locale/no_gr/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-dhparam.json b/locale/no_gr/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/no_gr/freedombone-dhparam.json
+++ b/locale/no_gr/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-image.json b/locale/no_gr/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/no_gr/freedombone-image.json
+++ b/locale/no_gr/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-wifi.json b/locale/no_gr/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/no_gr/freedombone-wifi.json
+++ b/locale/no_gr/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/no_gr/freedombone.json b/locale/no_gr/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/no_gr/freedombone.json
+++ b/locale/no_gr/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/pl/freedombone-config.json b/locale/pl/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/pl/freedombone-config.json
+++ b/locale/pl/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/pl/freedombone-controlpanel.json b/locale/pl/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/pl/freedombone-controlpanel.json
+++ b/locale/pl/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/pl/freedombone-dhparam.json b/locale/pl/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/pl/freedombone-dhparam.json
+++ b/locale/pl/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/pl/freedombone-image.json b/locale/pl/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/pl/freedombone-image.json
+++ b/locale/pl/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/pl/freedombone-wifi.json b/locale/pl/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/pl/freedombone-wifi.json
+++ b/locale/pl/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/pl/freedombone.json b/locale/pl/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/pl/freedombone.json
+++ b/locale/pl/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/pt/freedombone-config.json b/locale/pt/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/pt/freedombone-config.json
+++ b/locale/pt/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/pt/freedombone-controlpanel.json b/locale/pt/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/pt/freedombone-controlpanel.json
+++ b/locale/pt/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/pt/freedombone-dhparam.json b/locale/pt/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/pt/freedombone-dhparam.json
+++ b/locale/pt/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/pt/freedombone-image.json b/locale/pt/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/pt/freedombone-image.json
+++ b/locale/pt/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/pt/freedombone-wifi.json b/locale/pt/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/pt/freedombone-wifi.json
+++ b/locale/pt/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/pt/freedombone.json b/locale/pt/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/pt/freedombone.json
+++ b/locale/pt/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/pt_br/freedombone-config.json b/locale/pt_br/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/pt_br/freedombone-config.json
+++ b/locale/pt_br/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/pt_br/freedombone-controlpanel.json b/locale/pt_br/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/pt_br/freedombone-controlpanel.json
+++ b/locale/pt_br/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-dhparam.json b/locale/pt_br/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/pt_br/freedombone-dhparam.json
+++ b/locale/pt_br/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-image.json b/locale/pt_br/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/pt_br/freedombone-image.json
+++ b/locale/pt_br/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-wifi.json b/locale/pt_br/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/pt_br/freedombone-wifi.json
+++ b/locale/pt_br/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/pt_br/freedombone.json b/locale/pt_br/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/pt_br/freedombone.json
+++ b/locale/pt_br/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/ro/freedombone-config.json b/locale/ro/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/ro/freedombone-config.json
+++ b/locale/ro/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/ro/freedombone-controlpanel.json b/locale/ro/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/ro/freedombone-controlpanel.json
+++ b/locale/ro/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/ro/freedombone-dhparam.json b/locale/ro/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/ro/freedombone-dhparam.json
+++ b/locale/ro/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/ro/freedombone-image.json b/locale/ro/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/ro/freedombone-image.json
+++ b/locale/ro/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/ro/freedombone-wifi.json b/locale/ro/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/ro/freedombone-wifi.json
+++ b/locale/ro/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/ro/freedombone.json b/locale/ro/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/ro/freedombone.json
+++ b/locale/ro/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/ru/freedombone-config.json b/locale/ru/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/ru/freedombone-config.json
+++ b/locale/ru/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/ru/freedombone-controlpanel.json b/locale/ru/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/ru/freedombone-controlpanel.json
+++ b/locale/ru/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/ru/freedombone-dhparam.json b/locale/ru/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/ru/freedombone-dhparam.json
+++ b/locale/ru/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/ru/freedombone-image.json b/locale/ru/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/ru/freedombone-image.json
+++ b/locale/ru/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/ru/freedombone-wifi.json b/locale/ru/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/ru/freedombone-wifi.json
+++ b/locale/ru/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/ru/freedombone.json b/locale/ru/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/ru/freedombone.json
+++ b/locale/ru/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/sk/freedombone-config.json b/locale/sk/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/sk/freedombone-config.json
+++ b/locale/sk/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/sk/freedombone-controlpanel.json b/locale/sk/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/sk/freedombone-controlpanel.json
+++ b/locale/sk/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/sk/freedombone-dhparam.json b/locale/sk/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/sk/freedombone-dhparam.json
+++ b/locale/sk/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/sk/freedombone-image.json b/locale/sk/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/sk/freedombone-image.json
+++ b/locale/sk/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/sk/freedombone-wifi.json b/locale/sk/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/sk/freedombone-wifi.json
+++ b/locale/sk/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/sk/freedombone.json b/locale/sk/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/sk/freedombone.json
+++ b/locale/sk/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/sl/freedombone-config.json b/locale/sl/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/sl/freedombone-config.json
+++ b/locale/sl/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/sl/freedombone-controlpanel.json b/locale/sl/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/sl/freedombone-controlpanel.json
+++ b/locale/sl/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/sl/freedombone-dhparam.json b/locale/sl/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/sl/freedombone-dhparam.json
+++ b/locale/sl/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/sl/freedombone-image.json b/locale/sl/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/sl/freedombone-image.json
+++ b/locale/sl/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/sl/freedombone-wifi.json b/locale/sl/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/sl/freedombone-wifi.json
+++ b/locale/sl/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/sl/freedombone.json b/locale/sl/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/sl/freedombone.json
+++ b/locale/sl/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/sm/freedombone-config.json b/locale/sm/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/sm/freedombone-config.json
+++ b/locale/sm/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/sm/freedombone-controlpanel.json b/locale/sm/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/sm/freedombone-controlpanel.json
+++ b/locale/sm/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/sm/freedombone-dhparam.json b/locale/sm/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/sm/freedombone-dhparam.json
+++ b/locale/sm/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/sm/freedombone-image.json b/locale/sm/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/sm/freedombone-image.json
+++ b/locale/sm/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/sm/freedombone-wifi.json b/locale/sm/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/sm/freedombone-wifi.json
+++ b/locale/sm/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/sm/freedombone.json b/locale/sm/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/sm/freedombone.json
+++ b/locale/sm/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/so/freedombone-config.json b/locale/so/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/so/freedombone-config.json
+++ b/locale/so/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/so/freedombone-controlpanel.json b/locale/so/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/so/freedombone-controlpanel.json
+++ b/locale/so/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/so/freedombone-dhparam.json b/locale/so/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/so/freedombone-dhparam.json
+++ b/locale/so/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/so/freedombone-image.json b/locale/so/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/so/freedombone-image.json
+++ b/locale/so/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/so/freedombone-wifi.json b/locale/so/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/so/freedombone-wifi.json
+++ b/locale/so/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/so/freedombone.json b/locale/so/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/so/freedombone.json
+++ b/locale/so/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/sq/freedombone-config.json b/locale/sq/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/sq/freedombone-config.json
+++ b/locale/sq/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/sq/freedombone-controlpanel.json b/locale/sq/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/sq/freedombone-controlpanel.json
+++ b/locale/sq/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/sq/freedombone-dhparam.json b/locale/sq/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/sq/freedombone-dhparam.json
+++ b/locale/sq/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/sq/freedombone-image.json b/locale/sq/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/sq/freedombone-image.json
+++ b/locale/sq/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/sq/freedombone-wifi.json b/locale/sq/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/sq/freedombone-wifi.json
+++ b/locale/sq/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/sq/freedombone.json b/locale/sq/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/sq/freedombone.json
+++ b/locale/sq/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/sr/freedombone-config.json b/locale/sr/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/sr/freedombone-config.json
+++ b/locale/sr/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/sr/freedombone-controlpanel.json b/locale/sr/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/sr/freedombone-controlpanel.json
+++ b/locale/sr/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/sr/freedombone-dhparam.json b/locale/sr/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/sr/freedombone-dhparam.json
+++ b/locale/sr/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/sr/freedombone-image.json b/locale/sr/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/sr/freedombone-image.json
+++ b/locale/sr/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/sr/freedombone-wifi.json b/locale/sr/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/sr/freedombone-wifi.json
+++ b/locale/sr/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/sr/freedombone.json b/locale/sr/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/sr/freedombone.json
+++ b/locale/sr/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/sv/freedombone-config.json b/locale/sv/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/sv/freedombone-config.json
+++ b/locale/sv/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/sv/freedombone-controlpanel.json b/locale/sv/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/sv/freedombone-controlpanel.json
+++ b/locale/sv/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/sv/freedombone-dhparam.json b/locale/sv/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/sv/freedombone-dhparam.json
+++ b/locale/sv/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/sv/freedombone-image.json b/locale/sv/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/sv/freedombone-image.json
+++ b/locale/sv/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/sv/freedombone-wifi.json b/locale/sv/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/sv/freedombone-wifi.json
+++ b/locale/sv/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/sv/freedombone.json b/locale/sv/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/sv/freedombone.json
+++ b/locale/sv/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/ta/freedombone-config.json b/locale/ta/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/ta/freedombone-config.json
+++ b/locale/ta/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/ta/freedombone-controlpanel.json b/locale/ta/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/ta/freedombone-controlpanel.json
+++ b/locale/ta/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/ta/freedombone-dhparam.json b/locale/ta/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/ta/freedombone-dhparam.json
+++ b/locale/ta/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/ta/freedombone-image.json b/locale/ta/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/ta/freedombone-image.json
+++ b/locale/ta/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/ta/freedombone-wifi.json b/locale/ta/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/ta/freedombone-wifi.json
+++ b/locale/ta/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/ta/freedombone.json b/locale/ta/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/ta/freedombone.json
+++ b/locale/ta/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/th/freedombone-config.json b/locale/th/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/th/freedombone-config.json
+++ b/locale/th/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/th/freedombone-controlpanel.json b/locale/th/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/th/freedombone-controlpanel.json
+++ b/locale/th/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/th/freedombone-dhparam.json b/locale/th/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/th/freedombone-dhparam.json
+++ b/locale/th/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/th/freedombone-image.json b/locale/th/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/th/freedombone-image.json
+++ b/locale/th/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/th/freedombone-wifi.json b/locale/th/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/th/freedombone-wifi.json
+++ b/locale/th/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/th/freedombone.json b/locale/th/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/th/freedombone.json
+++ b/locale/th/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/tl/freedombone-config.json b/locale/tl/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/tl/freedombone-config.json
+++ b/locale/tl/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/tl/freedombone-controlpanel.json b/locale/tl/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/tl/freedombone-controlpanel.json
+++ b/locale/tl/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/tl/freedombone-dhparam.json b/locale/tl/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/tl/freedombone-dhparam.json
+++ b/locale/tl/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/tl/freedombone-image.json b/locale/tl/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/tl/freedombone-image.json
+++ b/locale/tl/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/tl/freedombone-wifi.json b/locale/tl/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/tl/freedombone-wifi.json
+++ b/locale/tl/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/tl/freedombone.json b/locale/tl/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/tl/freedombone.json
+++ b/locale/tl/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/to/freedombone-config.json b/locale/to/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/to/freedombone-config.json
+++ b/locale/to/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/to/freedombone-controlpanel.json b/locale/to/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/to/freedombone-controlpanel.json
+++ b/locale/to/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/to/freedombone-dhparam.json b/locale/to/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/to/freedombone-dhparam.json
+++ b/locale/to/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/to/freedombone-image.json b/locale/to/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/to/freedombone-image.json
+++ b/locale/to/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/to/freedombone-wifi.json b/locale/to/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/to/freedombone-wifi.json
+++ b/locale/to/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/to/freedombone.json b/locale/to/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/to/freedombone.json
+++ b/locale/to/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/tr/freedombone-config.json b/locale/tr/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/tr/freedombone-config.json
+++ b/locale/tr/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/tr/freedombone-controlpanel.json b/locale/tr/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/tr/freedombone-controlpanel.json
+++ b/locale/tr/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/tr/freedombone-dhparam.json b/locale/tr/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/tr/freedombone-dhparam.json
+++ b/locale/tr/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/tr/freedombone-image.json b/locale/tr/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/tr/freedombone-image.json
+++ b/locale/tr/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/tr/freedombone-wifi.json b/locale/tr/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/tr/freedombone-wifi.json
+++ b/locale/tr/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/tr/freedombone.json b/locale/tr/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/tr/freedombone.json
+++ b/locale/tr/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/uk/freedombone-config.json b/locale/uk/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/uk/freedombone-config.json
+++ b/locale/uk/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/uk/freedombone-controlpanel.json b/locale/uk/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/uk/freedombone-controlpanel.json
+++ b/locale/uk/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/uk/freedombone-dhparam.json b/locale/uk/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/uk/freedombone-dhparam.json
+++ b/locale/uk/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/uk/freedombone-image.json b/locale/uk/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/uk/freedombone-image.json
+++ b/locale/uk/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/uk/freedombone-wifi.json b/locale/uk/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/uk/freedombone-wifi.json
+++ b/locale/uk/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/uk/freedombone.json b/locale/uk/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/uk/freedombone.json
+++ b/locale/uk/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/vi/freedombone-config.json b/locale/vi/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/vi/freedombone-config.json
+++ b/locale/vi/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/vi/freedombone-controlpanel.json b/locale/vi/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/vi/freedombone-controlpanel.json
+++ b/locale/vi/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/vi/freedombone-dhparam.json b/locale/vi/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/vi/freedombone-dhparam.json
+++ b/locale/vi/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/vi/freedombone-image.json b/locale/vi/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/vi/freedombone-image.json
+++ b/locale/vi/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/vi/freedombone-wifi.json b/locale/vi/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/vi/freedombone-wifi.json
+++ b/locale/vi/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/vi/freedombone.json b/locale/vi/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/vi/freedombone.json
+++ b/locale/vi/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/zh_cn/freedombone-config.json b/locale/zh_cn/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/zh_cn/freedombone-config.json
+++ b/locale/zh_cn/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/zh_cn/freedombone-controlpanel.json b/locale/zh_cn/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/zh_cn/freedombone-controlpanel.json
+++ b/locale/zh_cn/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-dhparam.json b/locale/zh_cn/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/zh_cn/freedombone-dhparam.json
+++ b/locale/zh_cn/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-image.json b/locale/zh_cn/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/zh_cn/freedombone-image.json
+++ b/locale/zh_cn/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-wifi.json b/locale/zh_cn/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/zh_cn/freedombone-wifi.json
+++ b/locale/zh_cn/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone.json b/locale/zh_cn/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/zh_cn/freedombone.json
+++ b/locale/zh_cn/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",
diff --git a/locale/zh_tw/freedombone-config.json b/locale/zh_tw/freedombone-config.json
index c88c4c90ed5426f1ae37afa203bdbae91dcb45e6..40d7dee91e38fecaa17993b9326ed1b5c6290934 100644
--- a/locale/zh_tw/freedombone-config.json
+++ b/locale/zh_tw/freedombone-config.json
@@ -115,6 +115,7 @@
     "Set your username for the system\\n\\nYour username should not contain any spaces": "",
     "Don't use the default user account": "",
     "The directory /home/$MY_USERNAME does not exist": "",
+    "Your full name (or nick)": "",
     "Install Target": "",
     "\\nAre you installing onto a Beaglebone Black?": "",
     "\\nDo you wish to enable social key management, otherwise known as \\\"the unforgettable key\\\"?\\n\\nThis means that fragments of your GPG key will be included with any remote backups so that if you later lose your key then it can be reconstructed from your friends servers. If you select \\\"no\\\" then you can still do social key management, but offline using physical USB thumb drives, which is more secure but less convenient.": "",
@@ -189,19 +190,11 @@
     "ValiDOM": "",
     "Freie Unzensierte": "",
     "Google": "",
-    "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
-    "SSID:": "",
-    "Type:": "",
-    "Passphrase:": "",
-    "Hotspot:": "",
     "Choose Dynamic DNS provider:": "",
     "Dynamic DNS provider username": "",
     "Dynamic DNS provider password": "",
     "Password quality check": "",
     "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site.": "",
-    "Your full name (or nick)": "",
     "Static local IP address": "",
     "\\nDo you want to set a static local IP address for this system?\\n\\nFor example, 192.168.1.10": "",
     "Local Network Configuration": "",
diff --git a/locale/zh_tw/freedombone-controlpanel.json b/locale/zh_tw/freedombone-controlpanel.json
index bd201df8543783415cbe5e4340759fd8243b8841..ab859ac6ff9bebd1ede976539dbeafe1a0d8ecb3 100644
--- a/locale/zh_tw/freedombone-controlpanel.json
+++ b/locale/zh_tw/freedombone-controlpanel.json
@@ -167,13 +167,15 @@
     "Set the IP address of your internet router/modem": "",
     "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be 192.168.1.1, 192.168.1.254, or similar": "",
     "Wifi Settings": "",
-    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
-    "Interface:": "",
+    "Wifi settings were changed": "",
+    "Hotspot Settings": "",
+    "Enabled (yes/no):": "",
     "SSID:": "",
-    "Type:": "",
+    "Type (wpa2-psk/none):": "",
     "Passphrase:": "",
-    "Hotspot:": "",
-    "Wifi settings were changed": "",
+    "No wifi hotspot passphrase was given": "",
+    "Wifi hotspot passphrase was too short": "",
+    "Hotspot settings were changed": "",
     "Backup and Restore": "",
     "Choose an operation:": "",
     "Backup data to USB drive": "",
@@ -200,6 +202,14 @@
     "Attach a drive containing playable media": "",
     "Remove a drive containing playable media": "",
     "Exit": "",
+    "Enable Wifi": "",
+    "\\nDo you wish to enable wifi?": "",
+    "Wifi Menu": "",
+    "${status_str}\\n\\nChoose an operation:": "",
+    "Enable or disable Wifi": "",
+    "Configure wifi networks": "",
+    "Manually edit wifi networks file": "",
+    "Hotspot settings": "",
     "IRC Menu": "",
     "No IRC server is installed": "",
     "Set a password for all IRC users": "",
@@ -214,5 +224,6 @@
     "Set the main repository (repo mirrors)": "",
     "Media menu": "",
     "IRC menu": "",
-    "Change your blog avatar": ""
+    "Change your blog avatar": "",
+    "Wifi menu": ""
 }
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-dhparam.json b/locale/zh_tw/freedombone-dhparam.json
index 5b2e563ee21e1b9889dfc5cc4e020a08b8d0655b..a671f3ea31633c8ce80856aa3b89e8d52368fe8c 100644
--- a/locale/zh_tw/freedombone-dhparam.json
+++ b/locale/zh_tw/freedombone-dhparam.json
@@ -1,5 +1,7 @@
 {
     "${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]": "",
     "Recalculated DH params for $filename": "",
+    "yes": "",
+    "y": "",
     "$0: openssl is not installed, exiting": ""
 }
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-image.json b/locale/zh_tw/freedombone-image.json
index 6978cb2634fd6ac23855cbb303f63b4f29ad17bf..a4fd155c12e7d192a77b2f2a39850c333784c32f 100644
--- a/locale/zh_tw/freedombone-image.json
+++ b/locale/zh_tw/freedombone-image.json
@@ -1,9 +1,10 @@
 {
     "Config file $CONFIG_FILENAME not found": "",
     "Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters": "",
+    "$1": "",
     "\nImage was created.\n\nYou will be able to log into it with:\n": "",
-    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\n    Password: $PASSWORD\n": "",
-    "    Username: $USERNAME\n    Password: $PASSWORD\n": "",
-    "\n    Username: $USERNAME\n    Password: $PASSWORD\n": "",
+    "    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
+    "    Username: $USERNAME\nPassword: $PASSWORD\n": "",
+    "\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
     "Username: $USERNAME\nPassword: $PASSWORD": ""
 }
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-wifi.json b/locale/zh_tw/freedombone-wifi.json
index 0078dce4cd2e17fa048cb8dcd1024650d7b4d027..73b09f04cffdee76b0243c0c9de85ac3a487be4f 100644
--- a/locale/zh_tw/freedombone-wifi.json
+++ b/locale/zh_tw/freedombone-wifi.json
@@ -1,3 +1,9 @@
 {
+    "Freedombone Configuration": "",
+    "Wifi Settings ${wifi_ctr}": "",
+    "\\nIf you wish to use wifi and have a Free Software compatible adapter (eg. Atheros) rather than wired ethernet then enter the details below, otherwise just select Ok:": "",
+    "SSID:": "",
+    "Type:": "",
+    "Passphrase:": "",
     "${PROJECT_NAME}-wifi -i [interface] -t [type] -s [ssid] -p [passphrase]": ""
 }
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone.json b/locale/zh_tw/freedombone.json
index cb403b624a5dc72dce5f561ca060869b41841962..91cd0528b63628d1f946bebcd44258b1116766bd 100644
--- a/locale/zh_tw/freedombone.json
+++ b/locale/zh_tw/freedombone.json
@@ -124,6 +124,9 @@
     "Microblog onion domain: ${MICROBLOG_ONION_HOSTNAME}": "",
     "Search engine onion domain: ${SEARCH_ENGINE_ONION_HOSTNAME}": "",
     "Your search engine password is: $SEARCH_ENGINE_PASSWORD": "",
+    "Open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+    "Open http://$WEBMAIL_ONION_HOSTNAME": "",
+    "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "",
     "Open https://$HUBZILLA_DOMAIN_NAME and register a new user": "",
     "Open http://$HUBZILLA_ONION_HOSTNAME and register a new user": "",
     "Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD": "",